C++中字符串拼接常用方法包括:1. 使用+运算符连接std::string对象,如str1 + " " + str2;2. 使用+=运算符在原字符串后追加内容,适合逐步构建;3. 调用append()成员函数,支持多种参数形式,灵活性高;4. 利用stringstream处理字符串与数字等复杂类型的拼接,可读性强;5. 结合C++14的s后缀字面量(如"Hello"s),简化std::string构造与拼接。根据场景选择合适方式可提升效率与代码清晰度。

在C++中,连接两个字符串(字符串拼接)有多种方法,可以根据使用场景选择最合适的方式。下面介绍几种常用的字符串拼接方式,适用于std::string类型。
1. 使用 + 运算符拼接
这是最直观的方法,利用+操作符将两个std::string对象连接起来。
示例:
#include#include int main() { std::string str1 = "Hello"; std::string str2 = "World"; std::string result = str1 + " " + str2; std::cout << result << std::endl; // 输出: Hello World return 0; }
注意:+ 操作符只能用于相同类型的字符串或至少一端是std::string。如果拼接C风格字符串(char*),需确保至少一个是std::string。
立即学习“C++免费学习笔记(深入)”;
2. 使用 += 运算符追加
若想在原字符串后追加内容,可使用+=操作符,适合逐步构建字符串。
示例:
std::string message = "Hello"; message += " "; message += "World"; // 结果: Hello World
这种方式效率较高,避免频繁创建临时对象。
3. 使用 append() 方法
append()是std::string的成员函数,功能比+=更灵活,支持多种参数形式。
常用形式:
str.append(str2)
:追加整个字符串str.append(" C-style"):追加C字符串str.append(3, 'x')
:追加3个字符'x'str.append(str2, pos, len)
:从str2的pos位置取len个字符追加
示例:
std::string s = "Hello";
s.append(" from C++");
// 结果: Hello from C++
4. 使用 stringstream 拼接复杂内容
当需要拼接字符串和数字或其他类型时,std::stringstream非常方便。
示例:
#include#include std::string name = "Alice"; int age = 25; std::stringstream ss; ss << "Name: " << name << ", Age: " << age; std::string info = ss.str(); // 结果: Name: Alice, Age: 25
这种方法可读性强,适合格式化输出。
5. 使用 operator+ 拼接字面量与 string
C++允许std::string与字符串字面量直接用+拼接,但顺序要注意。
合法写法:
std::string result = std::string("Hello") + " World"; // OK
std::string result = "Hello" + std::string(" World"); // OK(因为重载了非成员函数)
但不能写成:
"Hello" + "World"(这是两个const char*,无法直接相加)。
6. C++14 中使用字符串字面量 s 后缀
引入
示例:
#includeusing namespace std::string_literals; auto str = "Hello"s + " World"; // "Hello"s 是 std::string 类型 // 不再需要显式构造 std::string("Hello")
这种方式让代码更简洁,尤其适合链式拼接。
基本上就这些常用方法。选择哪种方式取决于你的需求:简单拼接用+或+=,复杂格式用stringstream,涉及数字转换推荐stringstream或现代方法如fmt库(C++20起)。掌握这些技巧能让你更高效地处理字符串操作。










