Bonjour
Débutant en c++ et plus largement dans le domaine de la programmation, j'avais jeudi en TP un programme de comptage de caractère à faire, le but était de faire un programme qui lit une suite de caractères au clavier et les analyse. La suite est terminée lorsque l’utilisateur tape un point (‘.’). On devait créer 3 sous prog' qui compter chaque un type de caractère.
Voilà mon prog :
Le problème est le suivant : le programme fonctionne mais cependant ne me compte pas les caractères, quoi que je rentre il me sort toujours 1 caractère pour chaque type.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 bool est_un_chiffre (char a) { bool y; if (a>='0'&& a<='9') y = true; else y = false; return y ; } bool est_une_lettre (char a) { bool y; if (a>='a' && a<='z') y = true ; else if (a>='A' && a<='Z') y = true ; y = false ; return y ; } bool est_un_espacement (char a) { bool y; if (a==' ') y = true; else if (a=='\t') y = true; else if (a=='\n') y = true; else y = false; return y; } int main() { //decla char caract; bool x,y,z ; int A,B,C ; A=0; B=0; C=0; cout<<"**Programme de comptage de caractere**"<<endl; cout<<" - Saisir une chaine de caractere a analyzer. La chaine doit se terminer par un point"<<endl; do { cin>>noskipws>>caract; x = (est_une_lettre(caract)); if (x =true) {A=A+1;} y =(est_un_chiffre(caract)) ; if (y =true) {B=B+1;} z = (est_un_espacement(caract)); if (z=true) {C=C+1;} cout<<"Le nombre de lettre est"<<A<<endl; cout<<"Le nombre de chiffre est"<<B<<endl; cout<<"Le nombre d'espacement est"<<C<<endl; } while (caract =! '.'); system("PAUSE"); }
Etant débutant je me rends compte qu'il y à un problème au niveau de l’exécution de la boucle mais je n'arrive pas à identifier mon erreur, il me semble que le programme rentre une fois dedans et en sort directement.
Si quelqu'un pouvait m'aiguiller et si vous avez des remarques sur des maladresse dans la conception du programme , n'hésitez pas
Merci.
Partager