Exercice en C

exodus -  
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   -
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

1 réponse

mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
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 mot
std::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 main
int 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
0