Tableau en C

Ben -  
Mi-Ange Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Yop!
En fait je suis stagiaire et j'ai un p'tit programme à faire en C...
Le p'tit truc c ke j'arrive po à declarer un tableau à 2 dimensions
contenant des CHAINES DE CARACTERES..j'insiste bien, c pas des caracteres
simples mais bien des chaines...
Si y'a kelk'un ki peut m'aider et bien j'attend ton aide!!
d'avance merci
A voir également:

6 réponses

teebo Messages postés 33491 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Longtemps aue j'ai pas fait de C, mais si je ne m'abuse, une chaine est un tableau, donc faut faire un tableau a 3 dimensions...
En esperant avoir ete util (mais pas bien sur quand meme ,-) )

Teebo...
"Le Sage à des questions, l'idiot des réponses..."
0
Hilikus
 
En C, le type chaine de caractère existe pas !

en fait, une chaine, c'est quoi ? un tableau de caractères.

Tu peut faire une chaine ainsi :

char tab_chaine[10][100];

sa te fournit un tableau de 10 chaines qui peuvent chacune faire 100 caractères.

Si tu veut un tableau de chaines à 2 dimmensions, tu peut t'y prendre come ca :

char tab_2dim[10][10][100];

sa te donne un tableau à 2 dimmensions qui contient des chaines de 100 caractères maximum.

tu peut faire :
strcpy(tab_2dm[0][0],"ma chaine");

Tu peut aussi utiliser l'allocation dynamique avec malloc/calloc, mais si tu commnces le C, je te le conseille pas (les erreurs de pointeurs sont pas toujours simples).

Hésie pas si t'as des questions
0
teebo Messages postés 33491 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
En gros, ca revient a ce que j'ai dit mais en plus savant et plus detaille...C'est ca, ou alors j'ai dit une heresie?

Teebo...
"Le Sage à des questions, l'idiot des réponses..."
0
Hilikus
 
Oui, absolument, ca revient à ce que t'as dit.
0
Ben
 
Merci bien les gars!!!! ;-)
0
Phy
 
Et si tu veux les allouer de manière dynamique, tu défini un tableau à deux dimention de pointeurs sur chaines de caractères :
char * tableau_de_pointeurs[10][10];
il ne faut pas oublier de faire les allocations des chaines (malloc, calloc...) et de les désalouer à la fin (free). Pour savoir si un chaine est allouée, je te conseille de mettre tout les pointeurs à NULL.
Tu peux aussi construite ton talbleau entièrement dynamiquement (écris moi si tu veux des idées)

A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
batmat Messages postés 1871 Date d'inscription   Statut Membre Dernière intervention   114
 
Si tu es obligé de programmer en C, c bien comma ca qu'il faut faire, sinon en C++, il existe le type String
@+
-----------------------------
Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?
0
Mi-Ange Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Ok avec Hilikus.
Sauf que les chaînes déclarées peuvent contenir maximum 99 caractères, car un byte est réservé pour la marque de fin de chaîne.
0