Menu
Coddy logo textTech

Les chaînes comme tableaux de char

Fait partie de la section Logic & Flow 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 terminateur

La 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écial

Vous 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 6

Comprendre 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.

challenge icon

Défi

Facile

Écrivez un programme en C qui démontre la création et l'utilisation de tableaux de caractères pour stocker des chaînes de caractères. Votre programme doit :

  1. Déclarer un tableau de caractères nommé greeting avec suffisamment d'espace pour contenir la chaîne "Hello" (n'oubliez pas de prendre en compte le terminateur nul)
  2. Initialiser le tableau greeting avec la chaîne littérale "Hello"
  3. Déclarer un deuxième tableau de caractères nommé message avec 20 éléments
  4. Initialiser le tableau message avec la chaîne littérale "Welcome"
  5. Déclarer un troisième tableau de caractères nommé word sans spécifier la taille, et laisser le C déterminer automatiquement la taille en l'initialisant avec "Programming"
  6. Afficher les trois chaînes en utilisant printf avec le spécificateur de format %s
  7. Afficher la taille de chaque tableau en utilisant sizeof pour démontrer la quantité de mémoire occupée par chaque tableau de caractères

Votre sortie doit afficher les résultats dans le format suivant :

greeting: Hello
message: Welcome
word: Programming
Size of greeting: 6
Size of message: 20
Size of word: 12

Ce défi teste votre compréhension de la déclaration des tableaux de caractères pour le stockage de chaînes, de la manière dont les chaînes littérales sont automatiquement terminées par un caractère nul lorsqu'elles sont assignées à des tableaux de caractères, et de la manière dont le C calcule automatiquement la taille des tableaux lorsque vous omettez la spécification de taille lors de l'initialisation.

Aide-mémoire

En C, les chaînes de caractères sont représentées comme des tableaux de caractères. Il n'y a pas de type de données de chaîne intégré.

Déclarez un tableau de caractères avec une taille spécifiée :

char greeting[6];  // Peut contenir 5 caractères + le terminateur
char message[20]; // Peut contenir jusqu'à 19 caractères + le terminateur

Initialisez avec une chaîne littérale :

char greeting[6] = "Hello";
// Ceci stocke : 'H', 'e', 'l', 'l', 'o', plus un terminateur spécial

Laissez le C déterminer automatiquement la taille du tableau :

char greeting[] = "Hello";  // Le C lui donne automatiquement la taille 6

Affichez des chaînes en utilisant le spécificateur de format %s :

printf("%s", greeting);

Obtenez la taille du tableau en utilisant sizeof :

sizeof(greeting)  // Retourne le nombre total d'octets occupés par le tableau

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;
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logic & Flow