string.find(“”)找不到空格

时间:2013-03-18 11:30:21

标签: c++ string

我正在尝试在用户输入的字符串中查找空格。我想使用find()中的std::string来返回空格的位置。

如果输入是“Seattle,WA USA”,并且我希望find(" ", 0)返回8,我该怎么做?第8位是“,”之后的空格

string inputString = " ";
cout << "Enter String to modify" << endl;
cin >> inputString;
int spac = inputString.find(" " , 0);

find()仍在继续0。 我不知道为什么。

2 个答案:

答案 0 :(得分:8)

你没有阅读空格(空格cin >> inputString停止......)。

改为使用std::getline(std::cin, inputString)

答案 1 :(得分:0)

这是因为cin会在第一个空格后截断单词并​​将其存储到inputString

string inputString;

getline(cin, inputString);

int spac = inputString.find(" " , 0);

cout << spac << endl;