C++
Résolu/Fermé
sanaa1
Messages postés
64
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
20 septembre 2008
-
2 janv. 2008 à 21:06
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 3 janv. 2008 à 10:11
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 3 janv. 2008 à 10:11
4 réponses
sanaa1
Messages postés
64
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
20 septembre 2008
6
2 janv. 2008 à 22:16
2 janv. 2008 à 22:16
slt
qql pourrait m'aider ?svp
qql pourrait m'aider ?svp
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
2 janv. 2008 à 23:50
2 janv. 2008 à 23:50
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
sanaa1
Messages postés
64
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
20 septembre 2008
6
3 janv. 2008 à 00:02
3 janv. 2008 à 00:02
salut
ok.........je pense que j'ai compris un peu ,merci bcp pour ta reponse
ok.........je pense que j'ai compris un peu ,merci bcp pour ta reponse
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
3 janv. 2008 à 10:11
3 janv. 2008 à 10:11
Ok bonne continuation :-)