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 ?

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;
}
Merci.