我意识到了我的错误。我试图连接两个字符串。
我刚开始学习C++,遇到了一个有关字符串拼接的问题。当我使用以下代码时没有问题:
cout << "Your name is"<<name;
但是,当我尝试使用字符串时:
string nametext;
nametext = "Your name is" << name;
cout << nametext;
我遇到了一个错误。如何将两个字符串连接起来?
我意识到了我的错误。我试图连接两个字符串。
我刚开始学习C++,遇到了一个有关字符串拼接的问题。当我使用以下代码时没有问题:
cout << "Your name is"<<name;
但是,当我尝试使用字符串时:
string nametext;
nametext = "Your name is" << name;
cout << nametext;
我遇到了一个错误。如何将两个字符串连接起来?
+
运算符。nametext = "Your name is" + name;
"string"
将是一个const char*
而不是C++字符串。在C++中,不能重载同时接受基本类型的运算符,这意味着您必须将其中一个转换为字符串。这样做可以实现:std::string helloWorld = "Hello" + std::string(" World!");
- Creris首先不清楚type name是什么类型。如果它的类型是std::string
,那么应该用
string nametext;
nametext = "Your name is" << name;
你应该写作
std::string nametext = "Your name is " + name;
运算符“+”用于连接字符串。
如果name
是一个字符数组,那么你不能使用运算符“+”连接两个字符数组(因为字符串字面值也是一个字符数组),因为表达式中的字符数组会被编译器隐式地转换为指针。在这种情况下,你可以这样写
std::string nametext( "Your name is " );
nametext.append( name );
或者。std::string nametext( "Your name is " );
nametext += name;
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
string name = "Bill";
stringstream ss;
ss << "Your name is: " << name;
string info = ss.str();
cout << info << endl;
return 0;
}
nametext = "你的名字是" + name;
我觉得这样应该可以。
name
是一个std::string
吗? - Joseph Mansfield<<
是cout
的“输出”运算符。它不用于std::string
或 C 风格字符串 (char *
)。 - crashmstrstd::ostringstream
解决的问题需要解决。 - chris