Tableau en C

Ben -  
Mi-Ange Messages postés 2 Statut Membre -
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

  1. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
     
    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
  2. 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
    1. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
       
      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
  3. Hilikus
     
    Oui, absolument, ca revient à ce que t'as dit.
    0
  4. Ben
     
    Merci bien les gars!!!! ;-)
    0
    1. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. batmat Messages postés 1880 Date d'inscription   Statut Membre 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
  7. Mi-Ange Messages postés 2 Statut Membre
     
    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