Langage C - Les chaînes de caractères

Décembre 2016

Qu'est-ce qu'une chaîne de caractères ?


Une chaîne de caractères (appelée string en anglais) est une suite de caractères,
c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII.


En langage C, une chaîne de caractères est un tableau, comportant plusieurs données de type char, dont le dernier élément
est le caractère nul '\0', c'est-à-dire le premier caractère du code ASCII (dont la valeur est 0).

Ce caractère est un caractère de contrôle (donc non affichable) qui permet d'indiquer une fin de
chaîne de caractères. Ainsi une chaîne composée de n éléments sera en fait un tableau de n+1 éléments
de type char.

On peut par exemple représenter la chaîne « Bonjour » de la manière suivante :


Bonjour\0

Créer une chaîne de caractères


Pour définir une chaîne de caractères en langage C, il suffit de
définir un tableau de caractères. Le nombre maximum de caractères que comportera
la chaîne sera égal au nombre d'éléments du tableau moins un (réservé

au caractère de fin de chaîne).

 char Nom_du_tableau[Nombre_d_elements]





  • Le nombre d'éléments que comporte le tableau définit la taille maximale

de la chaîne, on peut toutefois utiliser partiellement cet espace en insérant le caractère
de fin de chaîne à l'emplacement désiré dans le tableau.


Astuce ! En définissant le tableau de la manière suivante, vous
mettez en évidence le nombre de caractères maximal de la chaîne :

 char Nom_du_tableau[Nombre_d_elements + 1]


Par exemple :

 char Chaine[50 + 1]

Initialiser une chaîne de caractères


Comme généralement en langage C, il faut initialiser votre chaîne de caractères, c'est-à-dire
remplir les cases du tableau avec des caractères, sachant que celui-ci devra obligatoirement contenir le caractère
de fin de chaîne '\0'.

Il y a deux façons de procéder :

  • remplir manuellement le tableau case par case
  • utiliser les fonctions de manipulation de chaînes fournies dans les librairies standard



Voici un exemple d'initialisation manuelle de chaîne de caractères :

#include <stdio.h>

void main(){
 char Chaine[20+1];

 Chaine[0]= 'B';

 Chaine[1]= 'o';

 Chaine[2]= 'n';

 Chaine[3]= 'j';

 Chaine[4]= 'o';

 Chaine[5]= 'u';

 Chaine[6]= 'r';

 Chaine[7]= '\0';

}



Voici une autre façon (plus simple) d'initialiser une chaîne de caractères :



#include <stdio.h>

void main(){
 char Chaine[20+1]={ 'B', 'o', 'n', 'j', 'o', 'u', 'r', '\0' };

}

Les fonctions de manipulation de chaînes de caractères


De nombreuses fonctions de manipulation de chaînes sont directement fournies. Ces fonctions
se trouvent dans le fichier d'en-tête <string.h>, c'est la raison pour laquelle il faut ajouter
la ligne suivante en début de programme :

#include <string.h>



Le fichier <string.h> contient les prototypes de nombreuses fonctions permettant de simplifier l'utilisation
et la manipulation de chaînes (environ une quarantaine).


A voir également :

Ce document intitulé «  Langage C - Les chaînes de caractères  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.