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

How to 'plus' strings in C++

本文关键字:字符串 C++      更新时间:2023-10-16

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

我需要分配一个代码,例如:

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

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

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

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

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" );

因此,如您所见,可以通过多种方式完成。

运算符 + 不能为指针重载。所以这个表达

"a" + "b"

无效。

对于您的代码将起作用,运算符 + 的操作数之一应具有类型 std::string

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

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

运算符 + 未定义为 char[]。当您在 cpp 中将字符串键入为"mystring"时,它们会在 const char 数组中解释。运算符 + 是为字符串和 char[] 定义的,所以这有效

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

是的,您确实不能使用"+"运算符添加字符串文字。但是,您可以在没有它的情况下连接它们。只需删除您的"+"。

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

我通常使用下面的模式。

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