我知道这是一个常见问题,但在寻找引用资料和其他 Material 时,我找不到这个问题的明确答案。
考虑以下代码:
#include <string>
// ...
// in a method
std::string a = "Hello ";
std::string b = "World";
std::string c = a + b;
编译器告诉我它找不到 char[dim]
的重载运算符。
是不是表示字符串中没有+运算符?
但在几个例子中,有这样一种情况。如果这不是连接更多字符串的正确方法,那么最好的方法是什么?
最佳答案
您编写的代码可以正常工作。您可能正在尝试实现一些不相关但相似的目标:
std::string c = "hello" + "world";
这行不通,因为对于 C++,这似乎是在尝试添加两个 char
指针。相反,您需要将至少一个 char*
文字转换为 std::string
。您可以执行您已在问题中发布的内容(正如我所说,此代码将有效),或者您执行以下操作:
std::string c = std::string("hello") + "world";
关于c++ - 连接字符串不能按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4304662/