我正在尝试制作一个C++程序,它可以接收用户输入,并提取字符串中的单词,例如,“Hello to Bob”将得到“Hello”,“to”,“Bob”。最终,我将把它们推入一个字符串向量中。这是我在设计代码时尝试使用的格式:
//string libraries and all other appropriate libraries have been included above here
string UserInput;
getline(cin,UserInput)
vector<string> words;
string temp=UserInput;
string pushBackVar;//this will eventually be used to pushback words into a vector
for (int i=0;i<UserInput.length();i++)
{
if(UserInput[i]==32)
{
pushBackVar=temp.erase(i,UserInput.length()-i);
//something like words.pushback(pushBackVar) will go here;
}
}
然而,这仅适用于字符串中遇到的第一个空格。如果单词前有空格(例如,如果我们有“Hello my World”),则它不起作用。在第一次循环后,pushBackVar将是“Hello”,在第二次循环后,它将变为“Hello my”,但我想要的是“Hello”和“my”。如何解决这个问题?是否有其他更好的方法从字符串中提取单词?我希望没有让任何人感到困惑。