extraire des mots de chaîne en c++

Je suis en train de faire un programme en C++ qui reçoit une entrée d'utilisateur, et en extrait les mots individuels dans la chaîne de caractères, par exemple "Bonjour à Bob" ne "Bonjour", "à", "Bob". Finalement, je vais pousser ceux-ci dans une chaîne de vecteur. C'est le format que j'ai essayé de l'utiliser lors de la conception du code:

//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;
  }  
}

Toutefois, cela ne fonctionne que pour le premier espace rencontré dans la chaîne.Il ne fonctionne pas si il y a un espace avant le mot (par exemple, si nous avons "Bonjour mon Monde", pushBackVar sera "Bonjour" après la première boucle, puis "Bonjour, mon" après la deuxième boucle, quand je veux "Bonjour" et "ma".) Comment puis-je résoudre ce problème? Est-il un autre de meilleure façon d'extraire des mots à partir d'une chaîne de caractères? J'espère que je n'ai pas confondu personne.

InformationsquelleAutor VVSTITAN | 2016-08-20