如何在C ++中'加'字符串

时间:2014-11-26 18:50:21

标签: c++

对不起,英语不是我的母语,那么我有一些疑问可以创建这个问题。

我需要分配如下代码:

string mystr;
mystr = "a" + "b";

但我只是得到错误。 问题在于运营商?不是+(加号)?

是的,我也是新手程序员。 请帮忙。 非常感谢你。

4 个答案:

答案 0 :(得分:0)

如果我理解正确,那么你可以写例如

std::string mystr( "a" );
mystr +=  "b";

std::string mystr;
// ...
mystr = std::string( "a" ) + "b";

或者

std::string mystr;
// ...
( mystr = "a" ) += "b";

或者

std::string mystr;
// ...
mystr.assign( "a" ).append( "b" );

所以你可以看到它可以通过各种方式完成。

operator +可能不会因指针而重载。 所以这个表达

"a" + "b"

无效。

对于您的代码,将使用operator +的操作数之一,其类型为std::string

如果由于某种原因需要指向std :: string类型的对象的指针,那么你可以编写例如

std::string *mystr = new std::string( "a" );

*mystr += "b";

答案 1 :(得分:0)

没有为char []定义operator +。当您在cpp中键入字符串为“mystring”时,它们将在const char数组中进行解释。 operator +是为字符串和char []定义的,所以这个工作

std::string mystr("thisisatring")
std::string otherstr = mystr + "otherstring"

答案 2 :(得分:0)

是的,您无法使用'+'运算符添加字符串文字。 但是,您可以在没有它的情况下连接它们。只需删除“+”。

string mystr;  
mystr = "a" "b";

答案 3 :(得分:0)

我通常使用下面的模式。

std::string a = std::string{"something"} + std::string{" more"};