Trích xuất chuỗi con

C++:
Trích xuất chuỗi con

Làm thế nào:

C++ làm cho việc lấy một chuỗi con trở nên dễ dàng. std::string là đồng minh đáng tin cậy của chúng ta ở đây, với hàm substr() thực hiện phần lớn công việc nặng nhọc. Chúng ta hãy đi thẳng vào một số mã:

#include <iostream>
#include <string>

int main() {
    std::string fullString = "Hello, World! Programming in C++ is fun.";
    std::string snippet;

    // Trích xuất "World" bắt đầu tại chỉ mục 7 với chiều dài 5
    snippet = fullString.substr(7, 5);
    std::cout << snippet << std::endl; // Đầu ra: World

    // Trích xuất "Programming" bắt đầu tại chỉ mục 14
    snippet = fullString.substr(14);
    std::cout << snippet << std::endl; // Đầu ra: Programming in C++ is fun.

    return 0;
}

Sâu hơn nữa

Chuỗi con không phải là điều mới. Các lập trình viên C cũ đã sử dụng strncpy và ghi chép thủ công. Việc xử lý chuỗi là nguồn gốc của nhiều loại lỗi, do đó C++ đã hướng tới việc đơn giản hóa nó. std::string và phương pháp substr của nó có từ C++98 và đã giảm bớt căng thẳng từ đó.

Có phương án khác? Chắc chắn. Bạn có thể làm thủ công với std::string::iterator hoặc lấp bụi cho các hàm C—nếu bạn thích sống mạo hiểm. Một cách tiếp cận hiện đại hơn có thể liên quan đến string_views cho việc liếc nhìn không chỉnh sửa.

Triển khai? Bên trong, substr thường phải cấp phát không gian lưu trữ mới và sao chép dữ liệu, điều này không phải là miễn phí. Nó nhẹ nhàng hơn so với việc vật lộn với con trỏ thô và mảng ký tự của thời xa xưa, nhưng nó không tức thì.

Xem thêm

Để biết thêm về std::string và các bạn của nó: