C++中拼接字符串常用方法包括:使用+或+=操作符处理std::string,示例为string result = str1 + str2;调用append()方法实现灵活追加,如a.append("is powerful");利用stringstream进行多字符串或混合类型拼接,如ss << "Age: " << 25;对C风格字符数组则用strcat或strncat,需注意缓冲区安全。推荐优先使用std::string相关方法以保证代码安全性与简洁性。

在C++中拼接两个字符串有多种方法,常用的方式取决于你使用的是 std::string 还是 C 风格的字符数组(char[])。下面介绍几种最实用且常见的字符串拼接方式。
使用 + 操作符拼接 std::string
如果你使用的是 std::string 类型,最简单的方法就是使用 + 或 += 操作符。
- +
示例代码:
#include <string>
#include <iostream>
using namespace std;
int main() {
string str1 = "Hello ";
string str2 = "World";
string result = str1 + str2;
cout << result << endl; // 输出: Hello World
str1 += str2;
cout << str1 << endl; // 输出: Hello World
return 0;
}
使用 append() 方法
append() 是 std::string 提供的成员函数,可以将另一个字符串添加到当前字符串末尾。它比 + 更灵活,支持指定子串或长度。
立即学习“C++免费学习笔记(深入)”;
常见用法:
- str.append(another_str) —— 添加整个字符串
- str.append(another_str, pos, len) —— 添加另一字符串的子串
- str.append("literal") —— 添加字符串字面量
示例:
在 Windows 11 上"直接发声"的 TTS(从 WSL2/TUI 调用 powershell.exe + System.Speech)。适用于用户说"说出来/读出来/语音播报/用TTS",或反馈"没声音/tts 生成的 mp3 是空的/播不出来",以及需要中文语音但 OpenClaw 内置 tts 不可用时。
string a = "C++ ";
a.append("is powerful");
cout << a << endl; // 输出: C++ is powerful
使用 stringstream 拼接(适合多字符串或混合类型)
当你需要拼接多个字符串或混合数值类型时,stringstream 是一个清晰且安全的选择。
示例:
#include <sstream>
#include <string>
#include <iostream>
int main() {
std::stringstream ss;
ss << "Age: " << 25 << ", Name: " << "Tom";
std::string result = ss.str();
cout << result << endl; // 输出: Age: 25, Name: Tom
return 0;
}
C 风格字符串拼接:使用 strcat_s 或 strncat
对于字符数组(char[]),可以使用 strcat_s(Windows 安全版本)或 strncat(更可移植)来拼接。
注意:必须确保目标数组有足够的空间,否则会导致缓冲区溢出。
示例:
#include <cstring>
#include <iostream>
using namespace std;
int main() {
char dest[50] = "Hello ";
const char* src = "World";
strcat(dest, src); // 使用 strncat(dest, src, sizeof(dest)-strlen(dest)-1) 更安全
cout << dest << endl;
return 0;
}
基本上就这些。日常开发推荐优先使用 std::string 和 + 或 append(),简洁又安全。处理混合类型时用 stringstream,只有在兼容旧代码或性能要求极高时才考虑 C 风格字符串操作。


















