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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
   | #include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#define N 5
 
char * un_mot(){
 
   int i;
   char *dico[N]= {"maison", "mitochondrie", "escherichia", "institut", "programation"};  //remplissage de notre tableau de mot
 
 
    srand((unsigned int) time(NULL));
    i=rand()%N;                                                                           //on choisit un chiffre aléatoire compris entre o et N-1
 
    return dico[i];
}
 
 
char * enlever_une_lettre(char * mot){ 
 
  char *motReponse;
  char  motinitial[strlen(mot)+1];
  strcpy(motinitial,mot);
 
 
  char  comp[strlen(mot)+1];              //va nous servir à la comparaison du mot mélanger et du mot taper sur le clavier par le joueur!!
  strcpy(comp,mot);
 
  int longueur_mot,c,i,j;
  char *copieChaine;
 
  longueur_mot=strlen(motinitial);
  srand((unsigned int) time(NULL));
 
  copieChaine=malloc(sizeof(char)*(longueur_mot+1));       //on crée une chaine de caractere qui aura la même taille que notre chaine initiale
  motReponse=malloc(sizeof(char));
 
 
  for(i=0;i<longueur_mot;i++){
    c=rand()%(strlen(motinitial));                             //on cherche à obtenir un nombre aléatoire compris etre 0 et la longueur de la chaine étudiée                                                                 ,attention pour que la longueur de la chaine soit recalculée à chaque tour de la boucle il                                                                ne faut pas ecrire longueur_mot mais bie strlen(chaine)
    copieChaine[i] =motinitial[c];                         //on copie le caratere de la position aléatoire dans notre chaine copie
 
    for(j=c;j<strlen(motinitial);j++)           
      motinitial[j]=motinitial[j+1];            //le dernier caractere de notre chaine prend la place du caratere à la position "c", ain                                                                      si à chaque tour de boucle le caratere est éliminé
    motinitial[strlen(motinitial)]='\0';
 
 
      // longueur_mot --;
 
 
  }
  // copieChaine[longueur_mot-1]=motinitial[0];
 
  printf("le mot melange: %s \n", copieChaine);
 
  printf("votre réponse:\n");
  scanf("%s",motReponse);
 
  if (strcmp(comp, motReponse) == 0) // Si strcmp renvoie 0 (chaînes identiques)
    {
      printf("%s \n",comp);
        printf("Bravo!\n");
    }
    else
    {
      printf("%s \n",comp);
        printf("Perdu!\n");
    }
 
 
  return 0;
}
 
int main(){
 
	enlever_une_lettre(un_mot());
 
 
  return 0;
} | 
Partager