【发布时间】:2020-12-30 23:01:35
【问题描述】:
#include <iostream>
using namespace std;
int main() {
string str;
cin >> str;
string str1 = str[0]; // statement1
str1 = str[0]; // statement2
cout << str1 << endl;
}
Statement1 显示错误,而 statement2 运行正常。谁能解释一下为什么会这样?
【问题讨论】:
-
string str1 = str[0];你觉得这条线有什么作用? -
str[0]是索引 0 处的字符,cplusplus.com/reference/string/string/string 您可以看到 std::string 的构造函数,没有一个 std::string 构造函数接受字符作为第一个参数;构造函数 #5 接受一个指向 char 的指针以及字节数,但您可以使用它,例如string str1(&str[0],1);