7 - Les chaînes de caractères
Introduction
En C, les chaînes de caractères sont des vecteurs de caractères (char
en anglais) et pour stocker un texte, il faut donc avoir créé un tableau de caractères assez grand pour contenir tout le texte. De plus, toutes les chaînes de caractères en C se terminent forcément, dans la mémoire de l'ordinateur, par le caractère \0
qui ne s'affichera jamais mais permet de savoir que la chaîne est finie.
Pour pouvoir saisir ou afficher une chaîne de caractères avec un scanf
ou un printf
, on utilise le symbole %s
.
Lien : https://www.youtube.com/watch?v=qqSHpG_UvQw
Fonctions de traitement des chaînes de caractères
Il existe plusieurs fonctions permettant de travailler avec des chaînes de caractères. Vous en trouverez quelques-unes ci-après. (Toutes ces fonctions sont définies dans la librairie standard string.h
.
size_t strlen(const char* chaine);
strlen
est une fonction qui calcule la longueur d'une chaîne de caractères (sans compter le caractère \0
).
NB : le type size_t
est définit dans stdlib.h
et il est utilisé pour contenir une taille d'un objet (un vecteur, ...). Ce type garantit de pouvoir stocker un nombre suffisamment grand pour donner la taille du plus grand objet possible (différent, notamment, en fonction du système 32 bits ou 64 bits).
char* strcpy(char* destination, const char* source);
La fonction strcpy
permet de copier une chaîne à l'intérieur d'une autre.
char* strcat(char* chaine1, const char* chaine2);
La fonction strcat
ajoute chaine2
après la chaine1
et stock le résultat dans chaine1.
int strcmp(const char* chaine1, const char* chaine2);
La fonction strcmp
compare les chaines de caractères chaine1
et chaine2
.
Elle renverra :
0
si les chaînes sont identiques- une valeur positive si la première est alphabétiquement après la seconde (dans l'ordre définit par le jeu de caractère du compilateur)
- une valeur négative si la première est alphabétiquement avant la seconde (dans l'ordre définit par le jeu de caractère du compilateur)
char* strchr(const char* chaine, int caractereARechercher);
La fonction strchr
renvoie un pointeur vers la première occurence du caractère à rechercher qu'elle a trouvé, c'est-à-dire qu'elle renvoie l'adresse de ce caractère dans la mémoire. Elle renvoie NULL
si elle n'a rien trouvé.
char* strstr(const char* chaine, const char* chaineARechercher);
La fonction strstr
recherche la première occurrence d'une chaîne dans une autre chaîne.
Elle renvoie un pointeur, sur la première occurrence, quand elle a trouvé ce qu'elle cherchait. Elle renvoie NULL si elle n'a rien trouvé.
Quizz
Afin de tester votre compréhension de la matière, complèter ce questionnaire