C++字符串组合

bac*_*ace 4 c++ string

我刚刚意识到自己的错误.我试图结合一个字符串和字符串.感谢帮助.

我刚刚开始使用c ++.我有关于字符串组合的问题.我使用时没有问题:

cout <<"Your name is"<<name;
Run Code Online (Sandbox Code Playgroud)

但是当我尝试用字符串做的时候:

string nametext;
nametext = "Your name is" << name;
cout << nametext;
Run Code Online (Sandbox Code Playgroud)

我收到了错误.如何组合文本和字符串?谢谢

Cre*_*ris 9

对于C++中的字符串连接,你应该使用+ so +

  • @GregoryFenn C++ 试图向后兼容 C,因此原始文字字符串,即 `"string"` 将是一个 const char* 而不是 C++ 字符串。在 C++ 中,您不能重载两边都采用原始类型的运算符,这意味着您必须将其中之一转换为字符串。这将起作用:`std::string helloWorld = "Hello" + std::string(" World!");` (4认同)
  • 不起作用,我收到“二进制表达式的无效操作数('const char *' 和'const char *')”错误在这一行:std::string helloWorld = "Hello," + " World!" ; 我究竟做错了什么?“你好”和“世界!” 是有效的字符串(我可以单独声明、分配和打印它们),但是它在 char* 上引发了一些奇怪的错误? (3认同)

Vla*_*cow 6

首先,不清楚类型名称具有什么。如果类型为std :: string,则代替

string nametext;
nametext = "Your name is" << name;
Run Code Online (Sandbox Code Playgroud)

你应该写

std::string nametext = "Your name is " + name;
Run Code Online (Sandbox Code Playgroud)

运算符+用于连接字符串。

如果name是一个字符数组,则您可能不能对两个字符数组(字符串文字也是一个字符数组)使用operator +,因为表达式中的字符数组会被编译器隐式转换为指针。在这种情况下,您可以写

std::string nametext( "Your name is " );
nametext.append( name );
Run Code Online (Sandbox Code Playgroud)

要么

std::string nametext( "Your name is " );
nametext += name;
Run Code Online (Sandbox Code Playgroud)