Tableau en C

Fermé
Ben - 5 avril 2002 à 14:24
Mi-Ange Messages postés 2 Date d'inscription samedi 6 avril 2002 Statut Membre Dernière intervention 7 avril 2002 - 7 avril 2002 à 00:42
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

6 réponses

teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
5 avril 2002 à 14:44
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
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 jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
5 avril 2002 à 14:55
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
Oui, absolument, ca revient à ce que t'as dit.
0
Merci bien les gars!!!! ;-)
0
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 jeudi 1 novembre 2001 Statut Membre Dernière intervention 9 janvier 2008 114
6 avril 2002 à 13:36
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 samedi 6 avril 2002 Statut Membre Dernière intervention 7 avril 2002
7 avril 2002 à 00:42
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