连接string不能按预期工作
我知道这是一个普遍的问题,但寻找参考和其他材料,我没有find明确的答案这个问题。
考虑下面的代码:
#include <string> // ... // in a method std::string a = "Hello "; std::string b = "World"; std::string c = a + b;
编译器告诉我它找不到一个重载操作符char[dim]
。
这是否意味着在string中没有+运算符?
但在几个例子中就有这样的情况。 如果这不是连接更多string的正确方法,那么最好的方法是什么?
您的代码,如书面,工作。 你可能试图实现一些不相关的东西,但类似:
std::string c = "hello" + "world";
这是行不通的,因为对于C ++来说,这好像是在试图添加两个char
指针。 相反,您需要将至less一个char*
文字转换为std::string
。 要么你可以做你已经发布的问题(正如我所说,这个代码将起作用),或者你做下面的事情:
std::string c = std::string("hello") + "world";
std::string a = "Hello "; a += "World";
我会这样做:
std::string a("Hello "); std::string b("World"); std::string c = a + b;
其中编译VS2008。
std::string a = "Hello "; std::string b = "World "; std::string c = a; c.append(b);