Page 1 Les chaînes de caractères :
Les fonctions scanf et printf permettent respectivement la lecture et l’affichage d’un caractère , pour cela on doit utiliser le code format %c.
main()
//affichage d’un caractère { char ch= ‘z’ ;
printf(‘’ %c ‘’ ,ch) ; }
main() { char ch ;
scanf(‘’ %c’’ ,&ch) ; //lecture d’un caractère printf(‘’ %c ‘’ ,ch) ;
}
Une chaîne de caractères n’est rien d’autre qu’un tableau de type caractère.
char chaîne[10] ;
Une chaîne de caractères contient un caractère spécial à la fin de la
chaîne appelé caractère de fin de chaîne (‘\0’). A chaque fois qu’une chaîne est créée il faut prévoir de la place pour le caractère de fin de chaîne.
Il faut ajouter un block de plus dans le tableau pour stocker le caractère nul (‘\0’).
Création et initialisation d’une chaîne de caractères : main()
{char chaîne[6] ; chaîne[0]=’S’ ; chaîne [1]=’A’ ; chaîne [2]=’L’ ; chaîne [3]=’U’ ;
Page 2 chaîne [4]=’T’ ;
chaîne [5]=’\0’ ;
printf(‘’ la chaîne est : %s\n ‘’, chaîne) ; }
Le code format utilisé pour les chaînes de caractères est %s.
main()
{char chaîne[6]=’’SALUT’’ ; printf(‘’ %s ‘’ ,chaîne) ; }
Lecture d’une chaîne de caractères : main()
{char prénom[30] ;
printf(‘’ comment t’appelles tu\n ‘’) ; scanf(‘’ %s’’ ,&prénom) ;
printf(‘’ salut %s, heureux de te connaître\n ‘’, prénom) ; }
Fonctions de manipulation des chaînes de caractères :
La bibliothèque string.h nous fournit des fonctions pour manipulation des chaînes de caractères.
strlen est une fonction qui calcule la longueur d’une chaîne de caractères(sans compter le caractère (‘\0’)).
La fonction contient la chaîne comme paramètre et retourne la longueur de la chaîne.
Page 3
#include<stdio.h>
#include<string.h>
main () {
char chaîne[6]= ‘’SALUT’’ ; int longueur ; longueur=strlen(chaîne) ;
printf(‘’ la chaîne %s fait %d caractères de long\n ‘’, chaîne,longueur) ; }
On peut écrire nous même le code de la fonction strlen
#include<stdio.h>
#include<string.h>
main()
{char chaîne[50],ch ; int L ;
printf(‘’ donner une chaine\n ‘’) ; scanf(‘’ %s’’, chaîne) ;
L=0 ; do
{ ch=chaîne [L] ; L++ ;
}
while(ch !=’\0’) ; L-- ;
printf(‘’ la chaîne %s fait %d caractères de long\n ‘’, chaîne,L) ; }
Page 4 La fonction strcpy permet de copier une chaîne à l’intérieur d’une autre.
cette fonction prend deux paramètres
Le 1er paramètre est le tableau qui reçoit la chaine à copier et le 2eme paramètre est la chaîne qui sera copiée.
main()
{ char chaîne[10]= ‘’TEXTE ‘’ ; char copie[10] ;
strcpy(copie,chaîne) ;
printf(‘’ la chaîne vaut %s\n ‘’, chaîne) ; printf(‘’ la copie vaut %s\n ‘’, copie) ; }
La fonction strcat ajoute une chaîne à la suite d’une autre, on appelle cela la concaténation.
main()
{ char Chaîne1[50]= ‘’SALUT ‘’ ; char chaîne2[10]= ‘’COUSIN ‘’;
strcat(chaîne1, chaîne2) ;
printf(‘’ chaîne1 vaut %s \n ‘’, chaîne1) ; printf(‘’ chaîne2 vaut %s\n ‘’, chaîne2) ; }
Les constantes :
Une fois déclarée une constante , elle conserve la même valeur pendant toute l’exécution du programme. Une constante est une variable
particulière (sa valeur reste toujours constante).
Pour déclarer une constante on utilise le mot const suivi du type de la variable , et il faut lui donner obligatoirement une valeur .
Page 5 Exemple :
const int nbj=7 ;
La fonction de comparaison de chaînes de caractères :
strcmp compare deux chaînes en utilisant l’ordre des caractères définit par le code ASCII .
strcmp compare deux chaînes de caractères. On fournit chacune de leur adresse à cette fonction qui retourne une valeur entière comme étant : -positive : si chaîne1>chaîne2 ;
-nulle : si chaîne1=chaine2 ; -négative : si chaîne1<chaîne2.
Exemple :
Écrire un programme qui détermine si deux chaînes de caractères sont égales, sinon on affiche les chaînes dans l’ordre croissant.
#include<stdio.h>
#include<string.h>
main()
{char chaîne1[30], chaîne2[30] ; int L ;
printf(‘’ donner la première chaîne\n ‘’) ; scanf(‘’ %s ‘’ , chaîne1) ;
printf (‘’ donner la deuxième chaîne\n ‘’) ; scanf(‘’ %s ‘’, chaîne2) ;
L=strcmp(chaîne1,chaîne2) if (L==0)
printf(‘’ %s est égale à %s\n ‘’, chaîne1, chaîne2) ; else
Page 6 if(L>0)
printf(‘’ %s est inférieure à %s\n ‘’, chaîne2, chaîne1) ; else
printf(« %s est inférieure à %s\n », chaîne1, chaîne2) ; }
Exemple :
Écrire un programme qui inverse une chaîne de caractères dans le même tableau.
#include<stdio.h>
#include<string.h>
main()
{char chaîne[50] ; int g,d,temp ;
printf(‘’ donner une chaîne\n ‘’) ; scanf(‘’ %s ‘’, chaîne) ;
d=strlen(chaîne)-1 ; for(g=0 ;g<d ;g++ ;d--) {temp=chaîne[g] ; chaîne[g]=chaîne[d] ; chaîne[d]=temp ; }
printf(‘’ la chaîne inversée est %s\n ‘’, chaîne) ; }