Bonjour à tous, alors voilà comme dit dans le titre, j'ai un petit problème concernant un code. Le programme permet l'entrée de noms, s'arrête lorsque le même nom est entré deux fois et affiche la liste entrée. Les majuscules sont converties en minuscules et vice versa.
J'ai tenté de résoudre cet exercice en utilisant des pointeurs mais le programme plante. Je pense que mon erreur se situe au niveau de la fonction "conversion" mais je ne la trouve pas.
Voici le code:
Merci d'avance!Code:#include<stdio.h> #include<stdlib.h> #include<string.h> int lecture(); void affichage(int *i, char tab[30][41]); void conversion(int *j,char tab[]); int main() { int x,i; char tab[30][41]; x=lecture(tab); // Attribuer à lecture le nombre de noms introduits affichage(&x,tab); system("pause"); // Parcourir l'ensemble du tableau conversion(&x,tab[i]); // Convertir en min ou maj affichage(&x,tab); system("pause"); } int lecture(char tab[30][41]) { int i; //Nombre de noms introduits char nom[41]; i=0; printf("Entrer un nom "); gets(tab[0]); printf("Entrer un nom "); gets(nom); while(strcmp(nom,tab[i])!=0) { strcpy(tab[i+1],nom); i++; printf("Entrer un autre nom "); gets(nom); } return i; //Retourner le nombre de noms introduits } void affichage(int *i, char tab[30][41]) { int j; for (j=0;j<=*i;j++) { printf("%s\n",tab[j]); } } void conversion(int *j, char tab[]) { int i,k; for(k=0;k<=*j;k++) { for(i=0; tab[i] != '\0' ;i++) { if((tab[i]>='A') && (tab[i]<='Z')) { tab[i]=tab[i]+('a'-'A'); } else { tab[i]=tab[i]+('A'-'a'); } } } }
-----