next up previous contents index
suivant: La ligne de commande monter: main précédent: Représentation des matrices par   Table des matières   Index


Tableaux de chaînes de caractères

Rappelons qu'en C, une chaîne est représentée par un tableau de caractères terminé par le caractère nul '\0' ; on peut donc représenter un tableau de chaînes comme une matrice dont les éléments sont des caractères. Ceci oblige à spécifier la longueur des lignes, qui doit être la longueur de la plus longue chaîne plus un (pour le '\0' final). Par exemple, la liste des dix premiers Turing awards27 peut être représentée par le tableau bidimensionnel suivant, à 10 lignes et 16 colonnes :


char turing1[][16] = { 
  "Perlis",
  "Wilkes",
  "Hamming",
  "Minsky",
  "Wilkinson",
  "McCarthy",
  "Dijkstra",
  "Bachman",
  "Knuth",
  "Newell et Simon"
};

Dans ce cas, turing1[8] est un tableau de 16 caractères, qui occupe donc 16 octets, mais n'utilise que les 6 premiers pour stocker "Knuth", et non 16 :


\begin{figurette}
% latex2html id marker 4922\begin{center}
\leavevmode
\fb...
...
} \caption {Tableau bidimensionnel de caractères} \end{center} \end{figurette}

Il peut être préférable, pour des raisons d'occupation de la mémoire, de représenter un tableau de chaînes comme un tableau, à une dimension, de pointeurs :


char *turing2[] = { 
  "Perlis",
  "Wilkes",
  "Hamming",
  "Minsky",
  "Wilkinson",
  "McCarthy",
  "Dijkstra",
  "Bachman",
  "Knuth",
  "Newell et Simon"
};

L'objet turing2 est différent de l'objet turing1, n'utilisant pas l'espace mémoire de la même façon. La chaîne turing2[8] n'occupe plus maintenant que 6 octets :


\begin{figurette}
% latex2html id marker 4930\begin{center}
\leavevmode
\fb...
...eps}
} \caption {Tableau de chaînes de caractères} \end{center} \end{figurette}

Mais on accède toujours aux différents caractères par les mêmes expressions : turing2[8][0], a comme turing1[8][0] pour contenu le caractère 'K'. Ces tableaux de chaînes de caractères sont analogues à la représentation des matrices par des tableaux de pointeurs, à ceci près que les << lignes >> de la matrice n'ont maintenant plus la même taille.


next up previous contents index
suivant: La ligne de commande monter: main précédent: Représentation des matrices par   Table des matières   Index
R Lalement