Leçon 33 : Tableaux de chaînes de caractères (Tableaux de caractères 2D)
Un tableau de chaînes est représenté en C par un tableau de caractères à 2 dimensions, où chaque ligne contient une chaîne (tableau de caractères) terminée par \0.
Déclaration et initialisation
Syntaxe : char nom_tableau[nombre_de_chaines][longueur_max_chaine];
c // 4 chaînes, longueur maximale de 10 caractères (plus le caractère nul) char noms[4][11] = { "Alice", // 6 octets (5 + \0) "Bob", // 4 octets "Charlie", // 8 octets "Dave" // 5 octets };
Accès et itération
noms[i]fait référence à la chaîne complète (la ligne).noms[i][j]fait référence au j-ième caractère de la i-ème chaîne.
Exemple : Afficher tous les noms
c #include <stdio.h> #define NB_NOMS 4 #define LONGUEUR_MAX 11
int main() { char noms[NB_NOMS][LONGUEUR_MAX] = {"Alice", "Bob", "Charlie", "Dave"};
for (int i = 0; i < NB_NOMS; i++) {
// Utilisation de %s pour afficher toute la ligne (la chaîne)
printf("Nom %d : %s\n", i + 1, noms[i]);
}
// Accès à un caractère spécifique (le 'r' de Charlie)
printf("Caractère : %c\n", noms[2][3]);
return 0;
}
Alternative : Tableau de pointeurs vers des chaînes (Aperçu)
Une méthode plus flexible et économe en mémoire consiste à utiliser un tableau de pointeurs, où chaque pointeur pointe vers un littéral de chaîne stocké ailleurs (sujet abordé dans le module sur les pointeurs).