L'impression de la chaîne d'entrée des mots dans l'ordre inverse

À l'aide de if et while/do-while, mon travail consiste à imprimer suivantes de l'utilisateur entrées (chaîne de valeur) dans l'ordre inverse.

Par exemple:

d'entrée de la chaîne de valeur : "Vous êtes Américain"
de sortie dans l'ordre inverse : "de l'Amérique sont Vous"

Est-il possible de faire cela?

J'ai essayé

string a;
cout << "enter a string: ";
getline(cin, a);
a = string ( a.rbegin(), a.rend() );
cout << a << endl;
return 0;

...mais cela aurait pour effet d'inverser l'ordre des mots et d'orthographe alors que l'orthographe n'est pas ce que je vais faire.

J'ai aussi devrait être en ajoutant à if et while déclarations, mais n'ont pas la moindre idée de comment.

  • Bien sûr, il est.
  • la chaîne a; cout << "entrez une chaîne: "; getline(cin, a); a = chaîne de caractères ( un.rbegin(), un.rené() ); cout << a << endl; return 0; cette inversion de l'ENSEMBLE de la chose.. l'ordre et de l'orthographe, mais je ne veux pas de l'orthographe. je ne sais comment je vais être en ajoutant dans le si, et tandis que les états..
  • Il serait utile si vous postez votre tentative de code dans la question elle-même? C'est un problème classique, avez-vous essayé de chercher ainsi?
  • Ajouter à ton post au lieu de le commentaires pour une meilleure mise en forme.
  • Inverser l'ensemble de la chaîne, comme vous le faites, puis d'inverser chaque mot. Il serait extrêmement facile et efficace si vous avez utilisé une classe comme llvm::StringRef.
  • j'ai, mais je ne suis pas tellement d'expérience dans la programmation. et oui, j'ai essayé de chercher 🙁
  • Souvent la clé de la résolution de ces problèmes est de décrire l'algorithme de mots sans penser en C++ (ou tout autre langage de programmation). Si vous pouviez décrire à un parent âgé, comment faire avec un crayon et du papier, de la conversion de cette description à votre langage de programmation de choix est beaucoup plus facile.
  • Vous pourriez être le fractionnement de la chaîne dans un vector alors parcourir le vecteur à partir de la fin vers le début.

InformationsquelleAutor user1940749 | 2013-01-01