chapitre 7

Chaine des caractères

 

1-    introduction :

 

C’est une succession de n caractères (0≤n≤255).

On langage c, une chaine de caractères est déclaré comme un tableau de caractères avec un dernier caractère de contrôle « \0 » : son code ASC2 est égal à zéro, il indique la fin de la chaine de caractères.

 

‘B’

‘O’

‘N’

‘J’

‘O’

‘U’

‘R’

‘\0’

 

è BONJOUR

 

2-  Les chaines de caractères :

 

Tableau : @ 1ére élément(caractère) du tableau.

 

1* déclaration d’une chaine :

 

Types(char) nom_tableau[longeur+1]           /* +1 car on à la caractére \0*/

 

2* initialisation d’une chaine :

 

1ére méthode :

Char mot[4]={‘b’,’o’,’n’,’\0’} ;   /*3+1*/

 

2éme méthode :

Char mot[4] ;

mot[0]=’b’ ;

mot[1]=’o’ ;

mot[2]=’n’ ;

mot[3]=’\0’ ;

 

3éme méthode :

Char mot[]= "bon" ;

 

3-  Chaine de caractères constante :

 

·        Sont indiqué entre " ". exemple : Char mot[]= "bon" ;

·        La chaine vide est "".

·        L’accée à une caractére se fait comme les tableaux.

 

4- Ecriture d’une chaine de caractères :

 

Printf("format(s) (%s)",nom_chaine(s)) ;

 

Exemples :

 

Char matiere[]="informatique" ;

Printf("%s",matiere) ;         /* donne : informatique*/

Printf("%.4s",matiere) ;      /* donne : info*/

 

è Il est faux décrire matière avec les e avec accent car les noms de tout les types(entier, réel…) ne sont pas tenus en compte en c).

Exemple :

 

int  bébé ;  /*faux*/

 

5-  Lecture d’une chaine de caractères :

 

Scanf("format(s)",nom_chaine) ;

 /*attention nom_chaine n’est suivi d’un & (adressage), c’est valable seulement pour les chaine de caractères ou des autre cas à étudier par la suite des chapitres*/

 

On peut aussi utilisé la fonction prés difinie « gets »  permet de lire une ligne se terminant par un retour à la ligne et la copie à l’adresse indiqué par le nom de la chaine.

 

 

Syntaxe :

 

Gets(nom_chaine) ;

 

6- Les fonctions de manipulation d’une chaine de caractères :

 

Beaucoup de chaine sont fournie on langage c obtenue à partir de la bibliothèque : string.h

 

1* strlen : retourne le nombre du caractères d’une chaine sans calcule de\0.

               Strlen(nom_chaine) ;

2*strcpy : permet de copier une chaine de caractére dans une variable de type chaine de caractére.

               Strcpy(nom_ch1,nom_ch2) ;

Exemple :

 

Strcpy(ch1, "info") ;

 

3* strcat : permet la concaténation de deux chaines de caractères.

                Strcat(ch1,ch2) ;

Exemple :

 

Strcpy(ch1,"bon") ;

Strcpy(ch2,"jour") ;

è Strcat(ch1,ch2) ; donne : bonjour

 

4* strcmp : compare deux chaines de caractères et renvoie l’indice 0 si elles sont identique.

 

Strcmp(ch1,ch2) ;

 

7-  Les tableaux de chaine de caractères :

 

C’est un tableau à deux dimensions de type char telle que chaque ligne admet  une chaine de caractères.

 

Remarque :

 

int tab[10][5] ;       /*matrice d’entier*/

char tab[10][5] ;   /*tableau de chaine de caractères*/

 

Lors de la déclaration, on peut initialiser les composantes par des chaines de caractères.

 

Exemple :

 

char jour [7][9]

= {"lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche"} ;

 

è 7 lignes correspondent au jour et 9 caractères sur colonne (8+1).

 

Pour accédé à une chaine, il faut indiquer la ligne correspondante.

Printf("c’est %s",jour[3]) ; -> c’est jeudi

 

Pour accéder à une caractère d’une chaine, il faut indiqué la ligne correspondante et l’indice du caractère dans la chaine.

 

Printf("%c",jour[0][0]) ; -> l

 

Pour affecter une chaine à une composante d’un tableau de type chaine de caractères, il faut utiliser la fonction strcpy.

 

Strcpy(jour[0], "monday") ; 

/*on peut faire un programme pour convertir les jours*/

Pour me contacté : mahfoudhighaieth2007@yahoo.fr

Créer un site gratuit avec e-monsite - Signaler un contenu illicite sur ce site