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 :
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.
Le caractère de fin de chaîne peut être représenté de différentes façons :
0
0x00
'\0'
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.
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
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
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.
Une chaîne de caractère se termine toujours par ...
Quelle est la taille du tableau suivant :
char str[] = "abc";
Combien de caractères utiles peut contenir la chaîne suivante :
char str[8];
Quelles syntaxes permettent d'insérer un caractère de fin de chaîne ?