为什么我们不能将 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 };