【发布时间】:2016-12-27 06:35:55
【问题描述】:
我正在尝试制作一个接收用户输入并提取字符串中的单个单词的 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”时。)我该如何解决这个问题?还有其他更好的方法可以从字符串中提取单个单词吗?我希望我没有让任何人感到困惑。
【问题讨论】: