std::string::operator+
#include <string>
//(1)
basic_string operator+( const basic_string& lhs, const basic_string& rhs );
//(2)
basic_string operator+( const basic_string& lhs, const charT* rhs );
//(3)
basic_string operator+( const charT* lhs, const basic_string& rhs );
//(4)
basic_string operator+( const basic_string& lhs, charT rhs );
//(5)
basic_string operator+( charT lhs, const basic_string& rhs );
Nối (concatenate) hai chuỗi lại với nhau, tạo ra một chuỗi mới.
Tham số
lhs
- Chuỗi, chuỗi ký tự C-style, hoặc ký tự ở bên trái toán tử
+
.
rhs
- Chuỗi, chuỗi ký tự C-style, hoặc ký tự ở bên phải toán tử
+
.
Giá trị trả về
- Một đối tượng std::string mới chứa kết quả của việc nối chuỗi.
Đặc điểm
- Toán tử
+
tạo ra một chuỗi mới, không thay đổi các chuỗi ban đầu. - Toán tử
+
có thể được sử dụng nhiều lần liên tiếp để nối nhiều chuỗi và ký tự (ví dụ: str1 + " " + str2 + "!"). - Khi nối một chuỗi std::string với một chuỗi ký tự C-style, chuỗi C-style sẽ được ngầm định chuyển đổi thành std::string trước khi thực hiện phép nối.
- Toán tử
+
có thể dẫn đến việc tạo ra các đối tượng std::string tạm thời, điều này có thể ảnh hưởng đến hiệu năng nếu sử dụng quá nhiều. Trong các trường hợp cần nối chuỗi liên tục trong vòng lặp, bạn nên sử dụngappend()
hoặcoperator+=
để tối ưu hơn. - Toán tử
+
thường được sử dụng để:- Nối hai chuỗi lại với nhau.
- Tạo chuỗi mới từ nhiều phần nhỏ hơn.
- Kết hợp các chuỗi và ký tự để tạo thành chuỗi mới.
Phân biệt với append(), operator+=, và push_back()
append()
: Cũng dùng để nối chuỗi, nhưng có nhiều tùy chọn hơn (nối một phần của chuỗi, nối nhiều lần ký tự,...) và thay đổi trực tiếp chuỗi gốc.operator+=
: Nối trực tiếp vào chuỗi hiện tại, thay đổi chuỗi đó, giốngappend()
.push_back()
: Chỉ dùng để nối một ký tự vào cuối chuỗi và thay đổi trực tiếp chuỗi gốc.operator+
: Tạo ra một chuỗi mới là kết quả của việc nối, không thay đổi các chuỗi ban đầu.
Ví dụ
#include <iostream>
#include <string>
int main() {
std::string str1 = "Hello";
std::string str2 = "World";
const char* cstr = "C-string";
char c = '!';
// Nối hai chuỗi string
std::string result1 = str1 + ", " + str2;
std::cout << "result1: " << result1 << std::endl; // Output: Hello, World
// Nối chuỗi string với chuỗi ký tự C-style
std::string result2 = str1 + " " + cstr;
std::cout << "result2: " << result2 << std::endl; // Output: Hello C-string
// Nối chuỗi ký tự C-style với string
std::string result5 = cstr + str1;
std::cout << "result5: " << result5 << std::endl;
// Nối chuỗi string với ký tự
std::string result3 = str1 + c;
std::cout << "result3: " << result3 << std::endl; // Output: Hello!
// Nối ký tự với chuỗi string
std::string result4 = c + str1;
std::cout << "result4: " << result4 << std::endl; // Output: !Hello
return 0;
}
Các hàm liên quan
append | Nối thêm nội dung vào cuối chuỗi hiện tại |
insert | Chè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 |
operator+= | Nối thêm nội dung vào cuối chuỗi hiện tại |