Bonsoir tout le monde !
Je suis débutante en langage C et suis confrontée à un petit problème, je m'explique :
J'ai un tableau contenant différents mots dans une boucle.
Exemple de valeurs de mon tableau : "bonjour vous tous".
Pour la suite de mon programme je dois structurer mes données, c'est à dire identifier chaque mots de chaque ligne, j'insère donc les mots dans un tableau à 2 dimensions (tab[9][8][25]) où 9 représentes le nombre de lignes et 8 le nombre de mots (de 25 caractères maximum) par ligne.
Mon problème est qu'à chaque tour de boucle la valeur de mon tableau change, je n'ai donc pas toujours 3 mots dans mon tableau, j'ai donc codé cela (Je vous préviens c'est du gros bidouillage)
Comment auriez-vous coder cela plus proprement ? J'ai vu sur la faq de ce site ce code très intéressant qui permet d'allouer de la mémoire dynamiquement à un tableau à 2 dimensions, j'imagine qu'il faudrait que j'applique cela mais je ne comprends pas le code, je n'ai pas encore eu de cours sur les pointeurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 char tab[9][8][25]; char ligne[100] ; fgets(ligne, 100,fic) ; nb = sscanf(ligne, "%s%s%s%s",toto,toto,toto,toto); switch (nb) { case -1 :sscanf("-1","%s",tab[i]) ; break; case 1 : sscanf(ligne,"%s",tab[i][0]); break; case 2 : sscanf(ligne,"%s%s",tab[i][0],tab[i][1]); break; case 3 : sscanf(ligne,"%s%s%s",tab[i][0],tab[i][1],tab[i][2]);break; case 4 : sscanf(ligne,"%s%s%s%s",tab[i][0],tab[i][1],tab[i][2],tab[i][3]; break; }
Merci beaucoup par avance et bonne semaine.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 char **tab; tab= malloc(sizeof(*tab)*9); for (i=0;i<9;i++){ tab[i] = malloc(sizeof(**tab)*8); }
Partager