Vous êtes sur la page 1sur 31

Introduction

Chaîne et tableau
Chaîne en langage C
Tableau de chaînes en langage C

Chapitre 5 : Chaîne de caractères

Hassen NAKBI :: Université de Sousse, ESSTHS


hassen.nakbi@gmail.com

1 ère année Licence

3 décembre 2022

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 1 / 31
Introduction
Chaîne et tableau
Chaîne en langage C
Tableau de chaînes en langage C

Introduction

Chaîne
Une chaîne de caractères est une séquence de caractères
formant des paragraphes et du texte.
Une chaîne peut contenir des lettres, des chires, des
caractères spéciaux et des caractères non imprimables à l'écran.
Chaque caractère composant d'une chaîne possède un code
ASCII sous forme entier constant en binaire compris en 0 et
127.
Une chaîne est modélisée dans la mémoire comme un
ensemble des cases linéaires, ou chaque caractère occupe une
seule case.

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 2 / 31
Introduction Dénition d'une chaîne
Chaîne et tableau Lecture et écriture d'une chaîne
Chaîne en langage C Accès aux éléments d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Tableau de chaînes

2 Chaîne et tableau
Dénition d'une chaîne
Lecture et écriture d'une chaîne
Accès aux éléments d'une chaîne
Manipulation d'une chaîne
Tableau de chaînes

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 3 / 31
Introduction Dénition d'une chaîne
Chaîne et tableau Lecture et écriture d'une chaîne
Chaîne en langage C Accès aux éléments d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Tableau de chaînes

Chaîne en algorithmique

Déclaration d'une chaîne


Une chaîne est considérée comme un tableau de caractères, donc il
faut dénir un nouveau type tableau de caractères pour pouvoir
traiter une chaîne en mémoire.

En algorithmique
CONST N = taille
TYPE CHN = Tableau[1..N] de caractères
VAR ST : CHN

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 4 / 31
Introduction Dénition d'une chaîne
Chaîne et tableau Lecture et écriture d'une chaîne
Chaîne en langage C Accès aux éléments d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Tableau de chaînes

2 Chaîne et tableau
Dénition d'une chaîne
Lecture et écriture d'une chaîne
Accès aux éléments d'une chaîne
Manipulation d'une chaîne
Tableau de chaînes

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 5 / 31
Introduction Dénition d'une chaîne
Chaîne et tableau Lecture et écriture d'une chaîne
Chaîne en langage C Accès aux éléments d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Tableau de chaînes

Chaîne en algorithmique
Lecture et écriture d'une chaîne
Pour une chaîne dénie en mémoire, nous pouvons initialiser avec
une suite de caractères délimitée entre guillemets, elle peut
également être lue à partir du clavier, ou bien acher leur contenu
à l'écran sans utiliser une structure itérative.
Initialisation, lecture et écriture d'une chaîne
VAR ST1,ST2 : CHN
DÉBUT
ST1 ←−"Bonjour"
Écrire(ST1)
Lire(ST2)
Écrire(ST2, " de taille ", longueur(ST2))
FIN
Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 6 / 31
Introduction Dénition d'une chaîne
Chaîne et tableau Lecture et écriture d'une chaîne
Chaîne en langage C Accès aux éléments d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Tableau de chaînes

2 Chaîne et tableau
Dénition d'une chaîne
Lecture et écriture d'une chaîne
Accès aux éléments d'une chaîne
Manipulation d'une chaîne
Tableau de chaînes

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 7 / 31
Introduction Dénition d'une chaîne
Chaîne et tableau Lecture et écriture d'une chaîne
Chaîne en langage C Accès aux éléments d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Tableau de chaînes

Chaîne en algorithmique

Chaîne en algorithmique
Les caractères composants d'une chaîne peuvent être accédés par
leur index en utilisant l'opérateur d'indexation [ ].

Accès aux éléments d'une chaîne


VAR ST1 : CHN
DÉBUT
ST1 ←−"Mohamed"
ST1[4] ←− 'S'
ST1[6] ←− ST1[3]
ST1[2] ←− 'a' + aléa(26)
FIN

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 8 / 31
Introduction Dénition d'une chaîne
Chaîne et tableau Lecture et écriture d'une chaîne
Chaîne en langage C Accès aux éléments d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Tableau de chaînes

2 Chaîne et tableau
Dénition d'une chaîne
Lecture et écriture d'une chaîne
Accès aux éléments d'une chaîne
Manipulation d'une chaîne
Tableau de chaînes

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 9 / 31
Introduction Dénition d'une chaîne
Chaîne et tableau Lecture et écriture d'une chaîne
Chaîne en langage C Accès aux éléments d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Tableau de chaînes

Chaîne en algorithmique

Manipulation d'une chaîne


Pour traiter une chaîne, on peut réaliser certaines opérations
comme la concaténation, la copie d'une chaîne source vers une
autre, la comparaison selon les codes ASCII de caractères, et la
conversion.

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 10 / 31
Introduction Dénition d'une chaîne
Chaîne et tableau Lecture et écriture d'une chaîne
Chaîne en langage C Accès aux éléments d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Tableau de chaînes

Chaîne en algorithmique

Concaténation des chaînes


La concaténation consiste à ajouter une chaîne à la n d'une autre.
VAR ST1,ST2,ST3 : CHN
nb : entier
DÉBUT
ST1 ←−"Bonjour"
ST2 ←− ST1 + " tout le monde"
ST3 ←− "Algorithmique" + " et programmation"
FIN

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 11 / 31
Introduction Dénition d'une chaîne
Chaîne et tableau Lecture et écriture d'une chaîne
Chaîne en langage C Accès aux éléments d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Tableau de chaînes

Chaîne en algorithmique

Copie des chaînes


La copie consiste à remplacer une chaîne par le contenu d'une
autre, en commençant par le début de chaîne destination.
VAR ST1,ST2,ST3 : CHN
DÉBUT
ST1 ←−"Programmation"
ST2 ←− "développement"
copie(ST1,ST2)
copie(ST2,ST1,6)
copie(ST3,ST2)
FIN

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 12 / 31
Introduction Dénition d'une chaîne
Chaîne et tableau Lecture et écriture d'une chaîne
Chaîne en langage C Accès aux éléments d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Tableau de chaînes

Chaîne en algorithmique

Comparaison des chaînes


La comparaison consiste à soustraire le code ascii d'un caractère
d'une chaîne destination par le caractère d'une chaîne source, s'ils
sont égaux nous passons aux caractères suivant jusqu'à la n.
Sinon, la comparaison renvoi un entier positif ou négatif selon le
résultat de soustraction.
VAR ST1,ST2 : CHN et nb : entier
DÉBUT
ST1 ←−"Programmation"
ST2 ←− "développement"
nb ←− compare(ST1,ST2)
nb ←− compare(ST2,ST1,4)
FIN
Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 13 / 31
Introduction Dénition d'une chaîne
Chaîne et tableau Lecture et écriture d'une chaîne
Chaîne en langage C Accès aux éléments d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Tableau de chaînes

2 Chaîne et tableau
Dénition d'une chaîne
Lecture et écriture d'une chaîne
Accès aux éléments d'une chaîne
Manipulation d'une chaîne
Tableau de chaînes

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 14 / 31
Introduction Dénition d'une chaîne
Chaîne et tableau Lecture et écriture d'une chaîne
Chaîne en langage C Accès aux éléments d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Tableau de chaînes

Tableau de chaînes

Déclaration d'un tableau de chaînes


Un ensemble des chaînes est modélisé comme une matrice de
dimensions N chaînes et M une longueur de caractères pour
chacune. En algorithmique :
CONST N = taille , M = longueur
TYPE chaîne = Tableau[1..M] de caractères
TYPE MAT = Tableau[1.. N] de chaîne
VAR TABS : MAT
DÉBUT
TABS[1][] ←− "Bonjour"
TABS[2][] ←−"Salut"
TABS[3][] ←−"au revoir"
FIN
Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 15 / 31
Introduction Dénition d'une chaîne
Chaîne et tableau Lecture et écriture d'une chaîne
Chaîne en langage C Accès aux éléments d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Tableau de chaînes

Tableau de chaînes

Lecture et Achage
CONST N = 4 , M = 9
TYPE chaîne = Tableau[1..M] de caractères
TYPE MAT = Tableau[1.. N] de chaîne
VAR TABS : MAT
DÉBUT
Pour i de 1 à N pas ←− 1 faire
Lire(TABS[i][])
FinPour
Pour i de 1 à N pas ←− 1 faire
Écrire(TABS[i][])
FinPour
FIN
Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 16 / 31
Introduction Dénition d'une chaîne en langage C
Chaîne et tableau Initialisation d'une chaîne
Chaîne en langage C Lecture et achage d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Conversion vers une chaîne

3 Chaîne en langage C
Dénition d'une chaîne en langage C
Initialisation d'une chaîne
Lecture et achage d'une chaîne
Manipulation d'une chaîne
Conversion vers une chaîne

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 17 / 31
Introduction Dénition d'une chaîne en langage C
Chaîne et tableau Initialisation d'une chaîne
Chaîne en langage C Lecture et achage d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Conversion vers une chaîne

Chaîne en langage c

Dénition d'une chaîne en langage c


Une chaîne peut être dénie comme un tableau statique de type
char avec une taille constante et se termine par un symbole '\0'.
Elle peut être initialiser avec une suite de caractères alignée entre
guillemets.

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 18 / 31
Introduction Dénition d'une chaîne en langage C
Chaîne et tableau Initialisation d'une chaîne
Chaîne en langage C Lecture et achage d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Conversion vers une chaîne

3 Chaîne en langage C
Dénition d'une chaîne en langage C
Initialisation d'une chaîne
Lecture et achage d'une chaîne
Manipulation d'une chaîne
Conversion vers une chaîne

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 19 / 31
Introduction Dénition d'une chaîne en langage C
Chaîne et tableau Initialisation d'une chaîne
Chaîne en langage C Lecture et achage d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Conversion vers une chaîne

Chaîne en langage c

Chaîne initialisée
Une chaîne est initialisée avec une chaîne littérale sera complétée
d'une façon automatique par un symbole '\0'.
int main( ) {
char ST1[20] ;
char ST2[20] = {'g','p','k',91,'j','r','2','d','\0' } ;
char ST3[ ] = "Bonsoir" ;
ST1[0] = 'z' ;
ST1[1] = 'f' + 2 ;
ST1[2]='A' + rand()%26 ;
return 0 ; }

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 20 / 31
Introduction Dénition d'une chaîne en langage C
Chaîne et tableau Initialisation d'une chaîne
Chaîne en langage C Lecture et achage d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Conversion vers une chaîne

3 Chaîne en langage C
Dénition d'une chaîne en langage C
Initialisation d'une chaîne
Lecture et achage d'une chaîne
Manipulation d'une chaîne
Conversion vers une chaîne

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 21 / 31
Introduction Dénition d'une chaîne en langage C
Chaîne et tableau Initialisation d'une chaîne
Chaîne en langage C Lecture et achage d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Conversion vers une chaîne

Chaîne en langage c

Lecture et achage d'une chaîne


Pour lire une suite de caractères au clavier, le langage c dispose
d'une fonction prédénie nommée gets() qui permet de lire une
chaîne terminée par le symbole entrée, qui sera remplacé par le
symbole '\0' au niveau du tableau. Par ailleurs, il dispose
également d'une autre fonction d'achage de chaîne à l'écran
nommée puts() avec un retour à la ligne d'une façon automatique.

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 22 / 31
Introduction Dénition d'une chaîne en langage C
Chaîne et tableau Initialisation d'une chaîne
Chaîne en langage C Lecture et achage d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Conversion vers une chaîne

Chaîne en langage c

Lecture et achage d'une chaîne


#include<stdio.h>
#include <string.h>
#dene N 25
char ST1[N] ;
int main( ) {
puts("Saisir une chaîne : ") ;
gets(ST1) ;
puts(ST1) ;
printf("%s n",ST1) ;
printf("Longueur %i ",strlen(ST1)) ;
return 0 ; }

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 23 / 31
Introduction Dénition d'une chaîne en langage C
Chaîne et tableau Initialisation d'une chaîne
Chaîne en langage C Lecture et achage d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Conversion vers une chaîne

3 Chaîne en langage C
Dénition d'une chaîne en langage C
Initialisation d'une chaîne
Lecture et achage d'une chaîne
Manipulation d'une chaîne
Conversion vers une chaîne

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 24 / 31
Introduction Dénition d'une chaîne en langage C
Chaîne et tableau Initialisation d'une chaîne
Chaîne en langage C Lecture et achage d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Conversion vers une chaîne

Manipulation en langage c

Manipulation d'une chaîne


Le langage c dispose d'une bibliothèque des fonctions très riche qui
concernent la manipulation d'une chaîne.
Voici une brève description des fonctions les plus fréquemment
utilisées qui sont dénies dans la bibliothèque <string.h>.

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 25 / 31
Introduction Dénition d'une chaîne en langage C
Chaîne et tableau Initialisation d'une chaîne
Chaîne en langage C Lecture et achage d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Conversion vers une chaîne

Bibliothèque <string.h>
Fonction Description
strlen(str1) Renvoi un entier longueur d'une chaîne str1.
strcat(str1,str2) Elle fait ajouter str2 à la n de chaîne str1.
strncat(str1,str2,n) Elle fait ajouter au plus n caractères de str2 à
la n de chaîne str1.
strcpy(str1,str2) Elle fait copier le contenu de str2 dans le début
str1.
strncpy(str1,str2,n) Elle fait copier les n caractères de str2 dans le
début str1.

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 26 / 31
Introduction Dénition d'une chaîne en langage C
Chaîne et tableau Initialisation d'une chaîne
Chaîne en langage C Lecture et achage d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Conversion vers une chaîne

Bibliothèque <string.h>
Fonction Description
strcmp(str1,str2) Renvoi un entier positif si le code ASCII de str1
est supérieur à str2, un entier négatif dans la
cas inverse et un entier nul si les codes ASCII
sont égaux.
strncmp(str1,str2,n) Renvoi un entier positif si les n caractères de
str1 est supérieur à str2, un entier négatif dans
la cas inverse et un entier nul si les codes ASCII
sont égaux.

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 27 / 31
Introduction Dénition d'une chaîne en langage C
Chaîne et tableau Initialisation d'une chaîne
Chaîne en langage C Lecture et achage d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Conversion vers une chaîne

3 Chaîne en langage C
Dénition d'une chaîne en langage C
Initialisation d'une chaîne
Lecture et achage d'une chaîne
Manipulation d'une chaîne
Conversion vers une chaîne

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 28 / 31
Introduction Dénition d'une chaîne en langage C
Chaîne et tableau Initialisation d'une chaîne
Chaîne en langage C Lecture et achage d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Conversion vers une chaîne

Fonction sprintf()
Pour produire une nouvelle chaîne de caractères par des valeurs
numériques, la fonction prédénie sprintf() fait une opération de
conversion des valeurs entières et réelles vers une chaîne.
int sprintf(chaine, "format ",variables) ;

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 29 / 31
Introduction Dénition d'une chaîne en langage C
Chaîne et tableau Initialisation d'une chaîne
Chaîne en langage C Lecture et achage d'une chaîne
Tableau de chaînes en langage C Manipulation d'une chaîne
Conversion vers une chaîne

Exemple : Fonction sprintf()


#include<stdio.h>
char ch[30] ;
short T[ ]={3,5,11,7,4} ;
int main( ) {
oat a = 2.15 ;
sprintf(ch, "Première valeur %hi valeur réelle %f",T[0],a) ;
printf(" %s ",ch) ;
return 0 ; }

Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 30 / 31
Introduction
Chaîne et tableau
Chaîne en langage C
Tableau de chaînes en langage C

Tableau de chaînes

Déclaration d'un tableau de chaînes


#include<stdio.h>
#dene N 5
#dene M 25
char ST[N][M] ;
int main( ) {
short i ;
for(i=0 ;i<N ;i++) {
printf("Saisir une chaîne : ") ;
gets(ST[i]) ; }
for(i=0 ;i<N ;i++)
printf("%s de longueur %i n",ST[i],strlen(ST[i])) ;
return 0 ; }
Hassen NAKBI :: Université de Sousse, ESSTHS Chapitre 5 : Chaîne de caractères 3 décembre 2022 31 / 31

Vous aimerez peut-être aussi