Bonjour,
À la ligne 23 motChercher[sizeof(motAtrouver)], je me demande pourquoi il n'y a pas d'étoile devant le pointeur motChercher et pourquoi aussi à la ligne 38 où on affiche le mot caché avec printf("%s", motCherche); il n'y a pas d'étoile pour dire que c'est la valeur qu'on veut ?
Si vous pouviez m'éclairer un peu, ce serait bien parce que j'ai l'impression qu'il y a plusieurs manières d'utiliser les pointeurs. C'est le code source du jeu du pendu en C écrit dans ce site. Et dernière petite question à la ligne où est écris gagne=! strcmp(motAtrouver, motCherche); ça se lit comment s'il n'y a pas de string compare gagne=true ?
Merci.
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 #include <stdio.h> #include <stdlib.h> #include <string.h> #define TRUE 1 #define FALSE 0 char lireCaractere() { char chaine[2]; gets(chaine); return chaine[0]; } int main() { int i=0; int coups=7; char motAtrouver[]="BONJOUR"; char lettreSaisie=' '; int lettre_trouvee=FALSE; char gagne=FALSE; char* motCherche; motCherche=malloc (sizeof (motAtrouver)); memset (motCherche,'*',sizeof (motAtrouver)); motCherche[sizeof (motAtrouver)-1]=0; printf("Jeu de pendu \n"); do { // Aucune lettre trouvée lettre_trouvee=FALSE; // Saisie d'une lettre et mise en majuscule printf("\nVotre lettre : "); lettreSaisie=lireCaractere(); // Comparaison avec le mot secret for(i=0; i<strlen (motAtrouver); i++) { if(lettreSaisie==motAtrouver[i]) { motCherche[i]=lettreSaisie; lettre_trouvee=TRUE; } } printf("%s", motCherche); //on affiche le mot cache if (!lettre_trouvee) { coups--; } printf("\nIl vous reste %d coups.\n ", coups ); gagne=! strcmp(motAtrouver, motCherche); } while(!gagne && coups>0); if ( gagne ) puts ("GAGNE"); else puts ("PERDU"); getchar(); free (motCherche); return 0; }
Partager