Cours 10.2. Le caractère de fin de chaîne

Caractère de fin de chaîne

La particularité des chaînes de caractères vis à vis des tableaux de caractères est qu'une chaîne de caractère se termine par un zéro de fin de chaîne. Ce zéro de fin de chaîne correspond au premier caractère de la table ASCII (à ne pas confondre avec le caractère '0' qui a pour code ASCII 48). Le caractère de fin de chaîne ne se trouve pas nécessairement dans la dernière cellule du tableau. Analysons la chaîne de caractère suivante :

char text[8] = "Bye!";

Voici la représentation en mémoire de cette chaîne de caractères :

Représentation en mémoire d'une chaîne de caractères

On constate que le zéro de fin de chaîne se trouve dans la cinquième cellule qui n'est pas la dernière case du tableau. On constate également que les 3 dernières cellules du tableau contiennent des valeurs arbitraires, c'est à dire qu'elles ne sont pas initialisées.

Syntaxe

Le caractère de fin de chaîne peut être représenté de différentes façons :

Le zéro de fin de chaîne règle le problème du passage en paramètre aux fonctions. Pas besoin d'ajouter un deuxième paramètre pour la taille, c'est le zéro qui indique la fin de la chaîne.

Exercice

Exercice 1

On donne la déclaration de la chaîne suivante :

char str[10] = "abc";

À l'aide d'une boucle, parcourir un à un les caractères du tableau afin de les afficher sous forme :

Utilisez sizeof() pour déterminer la longueur du tableau dans la boucle. Voici l'affichage attendu de cet exercice :

str[0]  = 'a'   = 97    = 0x61
str[1]  = 'b'   = 98    = 0x62
str[2]  = 'c'   = 99    = 0x63
str[3]  = ''    =  0    = 0x00
str[4]  = ''    =  0    = 0x00
str[5]  = ''    =  0    = 0x00
str[6]  = ''    =  0    = 0x00
str[7]  = ''    =  0    = 0x00
str[8]  = ''    =  0    = 0x00
str[9]  = ''    =  0    = 0x00

Exercice 2

On donne la déclaration de la chaîne suivante :

char str[] = "Cette chaîne est trop longue car elle contient trop de caractères.";

En une instruction, tronquez la chaîne après le 29ème caractère. Afficher la chaîne avant et après :

Avant : Cette chaîne est trop longue car elle contient trop de caractères.
Après : Cette chaîne est trop longue

Exercice 3

On fournit la déclaration d’une chaîne de caractères. Nous supposerons que la chaîne ne contiendra jamais d'accents, cédille, etc.

// Chaîne de caractères à mettre en majuscule
char str[ ] = "Ce texte est a mettre en majuscule.";

Complétez le programme ci-dessous qui convertit chaque caractères minuscules de la chaîne en majuscule. Notez qu’il s’agit de convertir la chaîne de caractères et pas uniquement de l’afficher en majuscule. Voici le résultat escompté :

Avant : Ce texte est a mettre en majuscule.
Après : CE TEXTE EST A METTRE EN MAJUSCULE.

Quiz

Une chaîne de caractère se termine toujours par ...

Vérifier Bravo ! Une chaîne de caractère se termine par un zéro qui n'est pas nécessairement dans la dernière cellule du tableau. Essaie encore ...

Quelle est la taille du tableau suivant :

char str[] = "abc";
Vérifier Bravo ! 3 caractères dans la chaîne + le zéro de fin de chaîne = 4 octets. Essaie encore ...

Combien de caractères utiles peut contenir la chaîne suivante :

char str[8];
Vérifier Bravo ! Si l'on enlève le zéro de fin de chaîne, il reste 7 caractères utiles. Essaie encore ...

Quelles syntaxes permettent d'insérer un caractère de fin de chaîne ?

Vérifier Bravo ! Essaie encore ...

Voir aussi


Dernière mise à jour : 11/01/2023