最简便方法是使用std::String与+或+=操作符拼接,如std::string result = a + ” ” + b + “!”;对于多类型数据拼接,可使用std::ostringstream,语法类似cout,支持字符串与数字等混合连接。

在C++中拼接多个字符串,最简便且常用的方法是使用std::string和重载的加号(+)操作符,或者直接使用复合赋值(+=)。现代C++标准还支持更高效或更简洁的方式,比如std::string_view(C++17起)和fmt库等。下面介绍几种实用且清晰的做法。
使用 + 和 += 操作符合并字符串
这是最基本也是最直观的方法。只要确保操作数中至少有一个是std::string类型,就可以直接用+拼接。
示例:
std::string a = “Hello”;
立即学习“C++免费学习笔记(深入)”;
std::string b = “World”;
std::string result = a + ” ” + b + “!”; // 结果:”Hello World!”
也可以逐步追加:
std::string msg;
msg += “Hello”;
msg += ” “;
msg += “World”;
使用ostringstream进行复杂拼接
当需要拼接不同类型的数据(如字符串、数字、浮点数)时,std::ostringstream非常方便,语法类似cout。
#include <sstream>
std::ostringstream oss;
oss
std::string result = oss.str();
这种方式可读性强,适合构建日志、SQL语句或格式化输出。
使用string::append方法
append()是std::string的成员函数,功能与+=类似,但提供更多选项,比如追加子串。
std::string s = “Hello”;
s.append(” “);
s.append(“World”, 3); // 只追加前3个字符:”Wor”
适用于需要精细控制拼接内容的场景。
C++17及以后:结合string_view提升效率
如果只是临时拼接查看结果而无需修改,可以使用std::string_view避免内存拷贝。注意它不拥有数据,仅做视图引用。
#include <string_view>
std::string_view sv1 = “Hello”;
std::string_view sv2 = “World”;
// 实际拼接仍需转为string(若要存储)
std::string combined = std::string(sv1) + ” ” + std::string(sv2);
适用于性能敏感场合下的只读操作。
基本上就这些常见做法。日常开发中优先使用+和+=,格式化拼接选ostringstream,高性能场景考虑string_view辅助。不复杂但容易忽略的是确保类型匹配,避免混合C风格字符串与std::string导致意外行为。