Exercice en C
Voici en gros l'exercice
Par exemple, le texte suivant :
Bonjour, ceci est un exemple de texte.
Donnera comme résultat possible :
Bonuojr, ceci tse nu eexlmpe ed ttxee.
a coder en C++
on me dit d'utiliser la fonction cin.get(char)
mais je comprend pas comment l'tiliser dans ce cas.
vous pourriez m'aider ? merci
Par exemple, le texte suivant :
Bonjour, ceci est un exemple de texte.
Donnera comme résultat possible :
Bonuojr, ceci tse nu eexlmpe ed ttxee.
a coder en C++
on me dit d'utiliser la fonction cin.get(char)
mais je comprend pas comment l'tiliser dans ce cas.
vous pourriez m'aider ? merci
1 réponse
-
std::cin c'est le flux sur l'entrée standard, ca permet donc de récupérer une saisie au clavier. C'est une solution pour récupérer la chaine à melanger mais tu peux aussi la lire dans un fichier. Dans un premier temps tu peux la mettre en dur dans ton main.
std::string sentence="Les tapirs gambadent gaiement dans la prairie."
...car à terme il faudra de toutes façons manipuler une chaine... Ensuite tu peux écrire :
-Une fonction pour extraire un motstd::size_t extract_words_from( const std::string & sentence, std::vector<std::string> & resultat ){ std::string word; //extraire la sous chaine (un mot) par exemple avec find //.. //la mettre dans resultat resultat.push_back(word); return resultat; }
- Une fonction pour melanger un mot :std::string shuffle_word(const std::string & w){ //... }
- Et un mainint main(){ //Recuperer la phrase (en lisant un fichier, ou sur cin....) //stocker la phrase dans std::string sentence //... //Extraire les mots std::vector<std::string> words; words=extract_words_from(sentence); std::size_t nb_words=words.size(); for(std::size_t i=0;i<nb_words;++i){ std::cout<<shuffle_word(words[i])<<" "; } std::cout<<std::endl; return 0; }
N'oublie pas en début de fichier les headers#include <string> #include <iotream>
Bonne chance
PS : Pour manipuler les chaînes tu as plein de méthodes toutes prêtes :
http://www.sgi.com/tech/stl/basic_string.html