Chuyển tới nội dung chính

std::string::operator+=

#include <string>

// (1) Nối thêm một chuỗi string khác
string& operator+= (const string& str);

// (2) Nối thêm một chuỗi ký tự C-style
string& operator+= (const char* s);

// (3) Nối thêm một ký tự
string& operator+= (char c);

// (4) Nối thêm một initializer list (từ C++11)
string& operator+= (initializer_list<char> il);

Nối (append) thêm nội dung vào cuối chuỗi hiện tại. Nó cung cấp một cách ngắn gọn và tiện lợi để mở rộng chuỗi.

Tham số

str

  • Chuỗi std::string cần nối thêm vào chuỗi hiện tại (phiên bản 1).

s

  • Con trỏ đến chuỗi ký tự C-style (kết thúc bằng ký tự null) cần nối thêm (phiên bản 2).

c

  • Ký tự cần nối thêm (phiên bản 3).

il

  • Initializer list chứa các ký tự cần nối thêm (phiên bản 4).

Giá trị trả về

*this

  • Tham chiếu đến chính đối tượng std::string hiện tại sau khi đã nối thêm nội dung, cho phép thực hiện toán tử += nhiều lần (chained operations).

Đặc điểm

  1. Toán tử += thay đổi trực tiếp nội dung của chuỗi, không tạo ra một chuỗi mới.
  2. std::string tự động quản lý bộ nhớ, bạn không cần phải lo lắng về việc cấp phát hay giải phóng bộ nhớ khi sử dụng +=.
  3. Toán tử += có thể được sử dụng nhiều lần liên tiếp (chained operations), ví dụ: str += "Hello" += " " += "world!";
  4. Toán tử += thường hiệu quả hơn so với việc sử dụng toán tử + nhiều lần để tạo ra các chuỗi trung gian.
  5. Toán tử += được nạp chồng để có thể nối thêm nhiều kiểu dữ liệu khác nhau vào chuỗi, bao gồm:
    • std::string khác
    • Chuỗi ký tự C-style (const char*)
    • Ký tự đơn (char)
    • Initializer list (từ C++11)
  6. Toán tử += thay đổi trực tiếp chuỗi hiện tại (bên trái toán tử), không tạo ra một chuỗi mới.
  7. std::string tự động quản lý bộ nhớ, toán tử += sẽ đảm nhiệm việc cấp phát lại bộ nhớ nếu cần thiết khi nối thêm nội dung.
  8. Toán tử += thường được sử dụng để:
    • Mở rộng chuỗi bằng cách thêm nội dung vào cuối.
    • Xây dựng chuỗi dần dần từ nhiều phần nhỏ hơn.
    • Nối chuỗi trong các vòng lặp hoặc các cấu trúc điều khiển.

Ví dụ

#include <iostream>
#include <string>

int main() {
std::string str = "Hello";

// Nối thêm chuỗi string khác
str += " ";
std::cout << "str after += \" \": " << str << std::endl;

// Nối thêm chuỗi ký tự C-style
str += "world";
std::cout << "str after += \"world\": " << str << std::endl;

// Nối thêm ký tự
str += '!';
std::cout << "str after += '!': " << str << std::endl;

// Nối thêm initializer list
str += { ' ', 'A', 'B', 'C' };
std::cout << "str after += {' ', 'A', 'B', 'C'}: " << str << std::endl;

return 0;
}

Các hàm liên quan

appendNối thêm nội dung vào cuối chuỗi hiện tại
assignGán nội dung mới cho chuỗi, thay thế nội dung hiện tại của nó
=Gán một giá trị mới cho một đối tượng std::string, thay thế nội dung hiện tại của nó
insertChèn thêm nội dung (ký tự, chuỗi, hoặc phạm vi) vào bên trong chuỗi tại một vị trí xác định
replaceThay thế một phần của chuỗi bằng một nội dung mới