Les chaînes comme tableaux de char
Fait partie de la section Logique & Flux du Journey C de Coddy. Leçon 12 sur 63.
En C, il n'existe pas de type de données de chaîne de caractères intégré comme on peut en trouver dans d'autres langages de programmation. Au lieu de cela, les chaînes sont représentées sous forme de tableaux de caractères. Ce concept fondamental est essentiel pour comprendre comment le texte est géré en programmation C.
Une chaîne de caractères en C est simplement une séquence de caractères stockés dans des emplacements mémoire consécutifs. Pour créer une chaîne, vous déclarez un tableau de caractères suffisamment grand pour contenir tous les caractères dont vous avez besoin, plus un espace supplémentaire pour un caractère de terminaison spécial.
char greeting[6]; // Peut contenir 5 caractères + le terminateur
char message[20]; // Peut contenir jusqu'à 19 caractères + le terminateurLa manière la plus pratique de travailler avec des chaînes de caractères est de les initialiser directement avec un littéral de chaîne lorsque vous déclarez le tableau. Le langage C gère automatiquement les détails du stockage de chaque caractère dans le tableau :
char greeting[6] = "Hello";
// Ceci stocke : 'H', 'e', 'l', 'l', 'o', plus un terminateur spécialVous pouvez également laisser le C déterminer automatiquement la taille du tableau en omettant la spécification de taille lors de l'initialisation avec une chaîne littérale :
char greeting[] = "Hello"; // C donne automatiquement à ceci la taille 6Comprendre que les chaînes de caractères sont des tableaux de caractères est crucial, car cela explique comment le langage C gère les données textuelles et vous prépare à travailler avec des fonctions de manipulation de chaînes qui opèrent sur ces tableaux de caractères.
Défi
FacileÉcrivez un programme en C qui montre comment créer et utiliser des tableaux de caractères pour stocker des chaînes. Votre programme doit :
- Déclarer un tableau de caractères nommé
greetingavec suffisamment d’espace pour contenir la chaîne "Hello" (n’oubliez pas de tenir compte du terminateur nul) - Initialiser le tableau
greetingavec le littéral de chaîne "Hello" - Déclarer un deuxième tableau de caractères nommé
messageavec 20 éléments - Initialiser le tableau
messageavec le littéral de chaîne "Welcome" - Déclarer un troisième tableau de caractères nommé
wordsans en spécifier la taille, et laisser C déterminer automatiquement la taille en l’initialisant avec "Programming" - Afficher les trois chaînes à l’aide de
printfavec le spécificateur de format%s - Afficher la taille de chaque tableau à l’aide de
sizeofafin de montrer la quantité de mémoire occupée par chaque tableau de caractères
Votre sortie doit afficher les résultats au format suivant :
greeting: Hello
message: Welcome
word: Programming
Size of greeting: 6
Size of message: 20
Size of word: 12Ce défi teste votre compréhension de la manière de déclarer des tableaux de caractères pour stocker des chaînes, de la façon dont les littéraux de chaîne sont automatiquement terminés par un caractère nul lorsqu’ils sont affectés à des tableaux de caractères, et de la manière dont C calcule automatiquement la taille des tableaux lorsque vous omettez la spécification de la taille lors de l’initialisation.
Essayez vous-même
#include <stdio.h>
int main() {
// À FAIRE : Écrivez votre code ici
// Déclarez et initialisez les tableaux de caractères comme spécifié dans le défi
// Affichez les chaînes et leurs tailles
printf("greeting: %s\n", greeting);
printf("message: %s\n", message);
printf("word: %s\n", word);
printf("Size of greeting: %lu\n", sizeof(greeting));
printf("Size of message: %lu\n", sizeof(message));
printf("Size of word: %lu\n", sizeof(word));
return 0;
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Les bases des pointeurs
Qu'est-ce qu'un pointeur ?Déclaration de pointeursL'opérateur d'adresse (&)L'opérateur de déréférencement (*)Pointeurs NULLRécapitulatif : Les bases des pointeurs4Projet : Utilitaire de texte simple
Présentation du projetCompter les caractères2Pointeurs et Tableaux
Noms de tableaux comme pointeursÉléments de tableau - PointeursArithmétique des pointeursComparaison de pointeursRécapitulatif : Parcours de tableau par pointeur5Pointeurs et fonctions
Passage par valeurPassage de pointeurs aux fonctionsModifier des variables via des pointeursUn exemple classique : SwapPassage de tableaux aux fonctionsRécapitulatif : Pointeurs comme arguments de fonction3Tableaux de caractères et chaînes
Les chaînes comme tableaux de charLe terminateur nulSaisie de chaînes avec scanfUtilisation de strlen()Utilisation de strcpy()Utilisation de strcat()Utilisation de strcmp()Récapitulatif : Fonctions de base sur les chaînesEntraînez-vous par vous-même : Compilateur C en ligne