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
| #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
//printf("%s \n",dico[i]); // on affiche le mot choisi aléatoirement
return dico[i];
}
char * enlever_une_lettre(char * mot){
char *motReponse;
char motinitial[]={strlen(mot)};
strcpy(motinitial,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()%(longueur_mot-1);//on cherche à obtenir un nombre aléatoire compris etre 0 et la longueur de la chaine étudiée
copieChaine[i] =motinitial[c]; //on copie le caratere de la position aléatoire dans notre chaine copie
for(j=c;j<longueur_mot;j++){
motinitial[j]=motinitial[longueur_mot-1]; //le dernier caractere de notre chaine prend la place du caratere à la position "c", ainsi à chaque tour de boucle le caratere est éliminé
mot[longueur_mot-1]='\0';
}
}
printf("le mot melange: %s \n", copieChaine);
printf("votre réponse:\n");
scanf("%s",motReponse);
return 0;
}
int main(){
enlever_une_lettre(un_mot());
return 0;
} |
Partager