私はユーザー入力を受け取り、文字列中の個々の単語を抽出するC++プログラムを作ろうとしています。 "Hello to Bob"は "Hello"、 "to"、 "Bob"を取得します。最終的には、これらを文字列ベクトルにプッシュします。これは、コードを設計するときに、私が使用しようとしたフォーマットである:文字列C++から個々の単語を抽出
//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;
}
}
単語の前にスペースがある場合は、string.Itに遭遇した最初のスペースのために、この唯一の作品は動作しません(たとえば、我々場合"こんにちは"と "私"が必要なときに、 "Hello my world"を持っていれば、pushBackVarは最初のループの後に "Hello"になり、2番目のループの後に "Hello my"になります。文字列から個々の単語を抽出する他の良い方法はありますか?私は誰もが混乱していないことを願っています。 >>
words = split(temp,' ');
可能な複製を(http://stackoverflow.com/questions/236129/split-a-string-in-c) –