为什么我们不能将 char 分配给字符串?
Why cant we assign char to strings?
在 C++ 中,我注意到如果我创建一个 string str="kls";
,那么我就不能写 string s1=str[0];
我必须改写:
string s1;
s1=str[0];
为什么会这样?
原因是 class std::string
没有接受类型 char
的单个参数的构造函数。虽然有一个复制赋值运算符接受单个字符作为参数。
basic_string& operator=(charT c);
你可以写
std::string s1( 1, str[0] );
或(使用了初始化列表构造函数)
std::string s1 = { str[0] };
或
std::string s1 = { str, 0, 1 };
在 C++ 中,我注意到如果我创建一个 string str="kls";
,那么我就不能写 string s1=str[0];
我必须改写:
string s1;
s1=str[0];
为什么会这样?
原因是 class std::string
没有接受类型 char
的单个参数的构造函数。虽然有一个复制赋值运算符接受单个字符作为参数。
basic_string& operator=(charT c);
你可以写
std::string s1( 1, str[0] );
或(使用了初始化列表构造函数)
std::string s1 = { str[0] };
或
std::string s1 = { str, 0, 1 };