对不起,英语不是我的母语,那么我有一些疑问可以创建这个问题。
我需要分配如下代码:
string mystr;
mystr = "a" + "b";
但我只是得到错误。 问题在于运营商?不是+(加号)?
是的,我也是新手程序员。 请帮忙。 非常感谢你。
答案 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"};