我正在研究一个小问题,但是我无法弄清楚。如果str1
的开头是“ simon say”,则程序应在“ simon say”之后放出一部分。如果我像下面的代码一样运行它,则可以,但是如果我自己在cin >> str1;
上输入字符串,则不会。有人给我小费吗? (是的,这是一个凯蒂问题)
int main()
{
string str1("simon says write a program");
//cin >> str1;
string str2 ("simon says");
if (str1.compare(0,10,str2,0,10) == 0){
cout << str1.substr(11,str1.size());
}
return 0;
}
最佳答案
这是因为std :: cin获得了空格分隔的字符串。如果您尝试使用以下命令从标准输入中读取字符串
std::cin << str1;
// something here
std::cin << str2;
您将输入“ simon说”,“ simon”将进入str1,“ says”将进入str2。要阅读整行,您应该使用
std::getline()