7.Chaînes de caractères
7-1. Définition
Une chaîne de caractères est un tableau de char contenant un caractère nul. Le caractère nul a 0 pour code ASCII et s'écrit: \'0'. Les variables significatives de la chaîne de caractères sont toutes celles placées avant le caractère nul. On remarque donc que si le caractère nul est en première position, on a une chaîne de caractères vide. Par exemple, la phrase "Pascal" sera codée de la sorte:
'P' | 'a' | 's' | 'c' | 'a' | 'l' | \'0' | ... |
7-2. Déclaration
Comme une chaîne de caractères est un tableau de char, on le déclare comme suit:
char nom_chaine[taille_chaine];
Exemple de déclaration d'une chaîne de caractères
char c[20];
Attention!
Le nombre maximal de lettres qu'il sera possible de placer dans la chaîne ne sera pas certainement 20 mais 19, car il faut placer après le dernier caractère de la chaîne un caractère nul!
7-3. Initialisation
On initialise une chaîne à la déclaration, et seulement à la déclaration, et cela se fait de la sorte:
char nom_chaine[taille_chaine]="valeur";
Exemple d'initialisation d'une chaîne
char c[10]="Gaston";
Cette instruction déclare une chaîne de caractère à "Gaston". Les 7 premiers des 10 éléments du tableau seront occupés par les 6 caractères de la chaîne ainsi que par le caractère nul, les autres contiendront des valeurs non significatives.
Observez bien l'exemple suivant:
char c[5]="Tolno";
7-4. Affichage
Il existe deux méthodes pour afficher une chaîne de caractères.
Première méthode:
Tout comme pour les tableaux, nous pouvons utilser une boucle pour afficher une chaîne de caractères. (Voir figure)
#include < stdio.h >
main()
{
int i = 0;
char c[10]="Pascal";
printf("Vous avez saisi: ");
while(c[i]!='\0')
{
printf("%c",c[i]);
i++ ;
}
}
Résultat
Deuxième méthode:
Cette seconde méthode est très simple. Il suffit d'utiliser printf avec la chaîne de format %s.
#include < stdio.h >
main()
{
char c[10]="Pascal";
printf("Vous avez saisi: %s", c);
}
Résultat
Par contre soyez attentif au fait que si votre chaîne ne contient pas de caractère nul ou que le caractère nul se trouve en déhors de la plage d'indice de votre chaîne, il faudra vous attendre aux pires horreurs à l'exécution!