C_facile : Introduction au langage C
Cours

Initialisation d'une chaîne à la déclaration

Exemple

char s1[ 10 ] = {'b', 'o', 'n', ' ', '!', '\0'} ;

On obtient les 6 premières cases du tableau qui contiennent :

Exemple
Exemple

C'est une chaîne de caractères car nous utilisons la convention.

L'instruction :

printf("%s",s1);

Affichera, en séquence les uns derrières les autres tous les caractères du tableau s1 jusqu'à trouver le caractère '\0'.

C'est-à-dire que l'on obtiendra : « bon ! » à l'écran. Sur l'écran.

Ce qui est équivalent à :

i = 0;

while (s1[i]!='\0') putchar(s1[i++]);

Remarque

Nous pouvons remarquer que la liste d'initialisation fait explicitement apparaître le caractère de marquage '\0'.

Cette initialisation par liste peut être fastidieuse, il existe une autre façon de faire dans le cas des chaînes de caractères.

Exemple

char s2[10] = "bonjour";

En effet comme pour le "a", le caractère '\0' est implicite après le caractère 'r' dans le littéral constant de type chaîne de caractères "bonjour".

Pour s2, qui comporte 10 cases, seules les 8 premières cases seront utilisées.

Introduisons maintenant les syntaxes équivalentes suivantes :

char *s3 = "bonjour";

char s4[] = {'b','o','n','j','o','u','r','\0'};

A la compilation, le compilateur réserve automatiquement autant de cases que nécessaires pour ranger les caractères de l'initialisation à la déclaration.

Ces syntaxes impliquent que s3 et s4 sont des tableaux d'exactement 8 caractères, 7 sont nécessaires pour les lettres de "bonjour" et un huitième pour coder le '\0' qui marque la fin des chaînes.

Cette valeur est calculée par le compilateur à partir des nombres de caractères utilisés pour l'initialisation à la déclaration.

Initialisation d'une chaîne par saisie (page suivante)Convention de codage des chaînes de caractères en langage C (page Précédente)
AccueilImprimer creativecommons : by-nc-ndRéalisé avec SCENARI