×

Chèn chuỗi vào vị trí cụ thể với std::string::insert() trong C++

Trong lập trình C++, thao tác chèn chuỗi vào một vị trí cụ thể trong chuỗi ban đầu là một kỹ thuật phổ biến và quan trọng. Thư viện chuẩn của C++ cung cấp một hàm mạnh mẽ mang tên std::string::insert() để thực hiện nhiệm vụ này. Hãy cùng tìm hiểu cách sử dụng hàm này qua một vài ví dụ và giải thích chi tiết.

Cách sử dụng std::string::insert()

Hàm std::string::insert() có nhiều biến thể, nhưng phiên bản phổ biến nhất thường có dạng:

std::string& insert(size_t pos, const std::string& str);

Trong đó:

  • pos là vị trí trong chuỗi ban đầu mà bạn muốn bắt đầu chèn chuỗi mới.
  • str là chuỗi mà bạn muốn chèn vào.

Ví dụ cụ thể

  1. Chèn một chuỗi vào vị trí bất kỳ trong chuỗi ban đầu

    Giả sử bạn có một chuỗi ban đầu là "Hello World" và bạn muốn chèn chuỗi "Beautiful " vào sau từ "Hello ":

    #include <iostream>
    #include <string>
    
    int main() {
        std::string original = "Hello World";
        std::string to_insert = "Beautiful ";
        
        original.insert(6, to_insert);
        
        std::cout << original << std::endl;  // Output: "Hello Beautiful World"
        return 0;
    }
    

    Trong ví dụ này, vị trí 6 là ngay sau ký tự 'o' trong từ "Hello".

  2. Chèn một ký tự đơn lẻ nhiều lần

    Bạn cũng có thể chèn một ký tự đơn lẻ nhiều lần vào vị trí cụ thể bằng cách sử dụng một biến thể khác của hàm insert:

    #include <iostream>
    #include <string>
    
    int main() {
        std::string original = "Hello World";
        
        // Chèn 3 ký tự '!' vào vị trí 5
        original.insert(5, 3, '!');
        
        std::cout << original << std::endl;  // Output: "Hello!!! World"
        return 0;
    }
    
  3. Chèn một phần của chuỗi

    Bạn cũng có thể chèn một phần của chuỗi con vào vị trí cụ thể:

    #include <iostream>
    #include <string>
    
    int main() {
        std::string original = "Hello World";
        std::string to_insert = "Beautiful World";
    
        // Chèn phần "Beautiful" (từ vị trí 0 đến 9)
        original.insert(6, to_insert, 0, 9);
        
        std::cout << original << std::endl;  // Output: "Hello Beautiful World"
        return 0;
    }
    

Các điểm cần lưu ý

  1. Vị trí chèn hợp lệ: Nếu vị trí pos vượt quá chiều dài của chuỗi ban đầu, một ngoại lệ kiểu std::out_of_range sẽ được ném ra. Do đó, cần đảm bảo vị trí chèn nằm trong khoảng chiều dài của chuỗi ban đầu.

  2. Hiệu suất: Chèn một chuỗi vào giữa chuỗi ban đầu có thể yêu cầu di chuyển một phần của chuỗi ban đầu để chừa chỗ cho chuỗi mới. Việc này có thể tốn kém về hiệu suất nếu chuỗi ban đầu rất lớn.

Tổng kết

Hàm std::string::insert() là công cụ mạnh mẽ và linh hoạt mà lập trình viên C++ có thể sử dụng để thêm các chuỗi vào vị trí cụ thể trong chuỗi ban đầu. Hiểu rõ cách thức hoạt động và sử dụng đúng cách sẽ giúp bạn thao tác với chuỗi một cách hiệu quả và chính xác.

Comments