Vous êtes sur la page 1sur 10

INTRODUCTION

L’usage commun d’une chaine de caractères consiste à représenter et


manipuler un texte quelconque.
Celui-ci peut être de longueur nulle, ne contenir qu’un seul caractère,
représenter un mot, ou bien une phrase avec de la ponctuation et pourquoi pas
un paragraphe, une page ou encore un document complet. Cela marque une
différence fondamentale avec les types du langage c que nous connaissons :
une chaine de caractères n’occupe probablement pas les mêmes nombres
d’octets en mémoire selon la valeur qu’elle a. Il ne s’agit donc pas d’un type de
base, à la taille fixe sur une plateforme d’exécution, mais au contraire d’un type
élaboré pour représenter une séquence d’information de longueur variable.
Dans notre travail sur les chaines de caractères nous allons traiter les cas
suivants :
1 Définition d’une chaine de caractères
2 Déclaration
3 Lecture
4 Affichage
5 Quelques fonctions de traitement
Remarque
6 Conclusion
1 Définition
Une chaine de caractère (string en anglais) est un ensemble d’éléments simple
(taille) de type char désignés par une identificateur unique ; chaque élément est
repéré par un indice précisant sa position au sein de l’ensemble. Elle se terminer
par le caractère nul

1.1Caractérisation :
- Identificateur
- Taille
- Indice
- Type char
Remarque :
Le caractère nul indique la fin de la chaine de caractères
Une chaine de caractères composée de N éléments sera en fait un tableau de N+1 éléments de type
char.
La manipulation de la bibliothèque (string .h)
E S E F _ M A T H S 10

2 Déclaration :

Char Non_ chaine [Taille] ;

Char : types des éléments de la chaine


_ : identificateur
Taille : Nombre d’éléments +1
Exemple :
Char chaine [10+1] ;
2.1 Initialisation
Char Non_ chaine [Taille]=
{‘carat1,’Carat2’… /0’} ;

Char Non_ chaine [Taille]=’’Caract1


Carat2’…’’ ;

Exemple :
Char chaine [7+1] = [‘E’, ‘S’, ‘F’,’2’, ‘/0’] ;
Char chaine [7+1] = ‘’ESEF_ S2’’ ;
Saisir :
La lecture d’une chaine de caractères peut être effectuée à l’aide de deux
fonctions : scanf (le code format est %S) et Gets
Exemple
Char chaine [20] ;
Ou bien
Gets (chaine) ;

3. AFFICHAGE
L’affichage d’une chaine de caractères peut être effectuée à l’aide de deux
fonctions : printf (le code format %S) et Puts
Exemple
Char chaine [20] = ‘’ESEF_SE’’ ;
Printf (‘’%S, Chaine) ;
Ou bien
Char chaine [20] = ‘’ ESEF_S2 ‘’ ;
Puts (chaine) ;
5. LES FONCTIONS UTILISEES POUR MANIPULER LES CHAINES DE CARACTERES
5.1 Strlen
Strlen : une fonction qui calcule et retourne la longueur d’une chaine de
caractères
Strlen(chaine)

Exemple

Char chaine [50] ; int lg ;


Printf (‘’enter la chaine :’’) ;
Gets(chaine) ;
Lg= strlen(chaine) ;
Printf (‘’longueur de la chaine : %S ‘’, lg) ;
5.2 Strcat :
Strcat : une fonction qui recopie une chaine de caractères à la suite d’une autre
chaine
Strcat (chaine 1, chaine2) ;

Exemple :

Char chaine1 [50] = ‘’ESEF_, chaine2[50] = ‘’MATHS’’ ;


Printf (‘’Avant strcat chaine1 : %S’’chaine1) ; //ESET_
Strcat (chaine1, chaine2) ;
Printf (‘’Apres strcat chaine1 : %S ‘’, chaine1) ; // ESEF_ MATHS

5.3 Strncat :
Strncat (chaine1, chaine2, n) ;

Strncat : Une fonction qui recopie les n premiers caractères d’une chaine de
caractères à la suite d’une autre chaine.
Exemple :
Char chaine [50] = ‘’ESEF_ ‘’, chaine2[50] =’’MATHS ‘’ ;
Printf (‘’Avant Strncat chaine1 : %S’’, chaine1) ; //ESEF_ MAT
5 .4 Strcmp :
Strcmp : Une fonction qui compare deux chaines de caractères selon l’ordre
lexicographique du code ASCII et retourne une valeur entier (>0, ou bien < 0 )
Strcmp (chaine1, chaine2)

Gets (chaine) ; gets (chaine) ;


Res = strcmp (chaine1, chaine2) ; Exemple :
Char chaine1[50], Chaine2[50] ; int res ;

If (res<0) printf (‘’%S avant %S’’, chaine 1, chaine2) ;


If (res>0) printf (‘’S apres %S’’, chaine1, chaine2) ;
If (res = 0) printf (‘’%S et %S sont identiques ‘’, chaine1, chaine2) ;
5 .5 Strncmp et stricmp :
Strncmp : Une fonction qui compare les n premiers caractères de deux chaines
ASCII et retourne une valeur entière (>0, = 0 ou bien <0)
Strncmp (chaine1, chaine2,) ;
Strncmp : Une fonction qui compare deux chaines de caractères sans tenir
compte de la différence entre les majuscules et les minuscules
5.6 strcpy :
Strcpy : Une fonction qui recopie ’une chaine de caractères l’emplacement
d’une autre chaine
Strcpy (chaine1, chaine2,) ;

Exemple :
Char chaine [50] = ‘’ESEF_’’, chaine2[50] =’’MATHS ‘’ ;
Printf (‘’Avant strcpy chaine1 : %S’’, chaine1) ; //ESEF_
Strcpy (Chaine1, chaine2) ;
Printf (‘’Apres strcpy chaine1 : %S’’, chaine1) ;//MATHS
5.7 Strncpy :
Strncpy : Une fonction qui recopie les n premiers caractères d’une chaine dans
une autre chaine (en respectant leurs l’emplacement)
Strncpy (chaine1, chaine2, n) ;

Exemple
Char chaine1 [50] = ‘’ESEF_, chaine2 [50] =’’MATHS’’ ;
Strncpy (chaine1, chaine2) ;
Printf (‘’Avant strncpy chaine1 : % S’’, chaine1) ;
5.8 Atoi :
Atoi : Une fonction qui convient une chaine de caractères en une valeur
numérique de type int
Exemple
Char chaine1 [50] = ‘’11111’’, chaine2 [50] = ‘’22222’’ ; int res ;
Res = atoi (chaine1) + atoi(chaine2) ;
Printf (‘’résultat : %S ‘’, res) ; //33333
5.9 Atof :
Atof : une fonction qui converti une chaine de caractères en une valeur
numérique de type float
Atof(chaine) ;

Exemple :

Char chaine1 [50] = ‘’11111, 1’’, chaine2[50] = ‘’22222,2’’ ; float res ;


Res = atof(chaine1) + atof(chaine2) ;
Printf (‘’résultat : %S, res/ :33333,3
Remarque : le premier caractère invalide arrête l’exploitation et si aucun
caractère n’est exploitable, la fonction fourni un résultat nul 0
CONCLUSION
En effet, nous avons compris que pour écrire un programme en c qui permet de
calculer le nombre d’apparition d’un caractère dans une chaine de caractères
ce programme se de roule comme suit :
- Lire une chaine de caractères
- Afficher la chaine de caractères
- Lire le caractère à rechercher
- Calculer et afficher le nombre d’apparition et du caractère saisi
Nous avons aussi constante que les éléments de boucles étudiés dernièrement
intervient ( sur les boucles ) dans ce chapitre (chaine de caractères)
NB : le point-virgule (;) est très important pour l’affichage de nos résultats et
ça fait partir des erreurs d’avant l’exécution de notre travail et a n’est pas
oublier.

Vous aimerez peut-être aussi