C++
Résolu4 réponses
Bah en fait c'est plutôt on t'a donné la solution alors ?
Enfin peu importe. Le principe c'est de parcourir la phrase entrée par l'utilisateur (t). A noter que si la phrase fait plus de 50 caractères le programme plante.
Il suffit ensuite de parcourir t du début à la fin (\0). La suite est codée de manière assez étrange... en particulier je ne comprends pas trop pourquoi il y a des états (et en plus c'est pas indenté). Visiblement i correspond au caractère courant, etat = 1 à "mot en cours de lecture, etat = 2 à "mot lu", et num compte le nombre de mots lus.
En fait le programme serait beaucoup plus simple (et lisible) en utilisant la fonction strtok.
http://www.cplusplus.com/reference/cstring/strtok/
En gros ca donne :
ce qui est à mon humble avis un poil plus lisible...
Bonne chance
Enfin peu importe. Le principe c'est de parcourir la phrase entrée par l'utilisateur (t). A noter que si la phrase fait plus de 50 caractères le programme plante.
Il suffit ensuite de parcourir t du début à la fin (\0). La suite est codée de manière assez étrange... en particulier je ne comprends pas trop pourquoi il y a des états (et en plus c'est pas indenté). Visiblement i correspond au caractère courant, etat = 1 à "mot en cours de lecture, etat = 2 à "mot lu", et num compte le nombre de mots lus.
En fait le programme serait beaucoup plus simple (et lisible) en utilisant la fonction strtok.
http://www.cplusplus.com/reference/cstring/strtok/
En gros ca donne :
#include <cstring> #include <iostream> int main (){ const char *sep = " "; char str[] = "je pense donc je suis"; char *pch = strtok(str,sep); for(unsigned i = 0 ; pch != NULL ; ++i){ std::cout << "mot " << i << '\t' << pch << std::endl; pch = strtok (NULL,sep); } return 0; }
ce qui est à mon humble avis un poil plus lisible...
Bonne chance