Chapitre 7
Les chaines de caracteres
1.Définition :
Une chaîne de caractères est une structure de données permettant de regrouper une suite
finie de caractères dans une même variable pour pouvoir l’exploiter dans sa totalité.
Dans certains ouvrages, on dit qu’une chaîne de caractères est un tableau de caractères.
Remarque
Une chaîne de caractères peut être exploitée en tant que variable chaîne, dans ce cas on
manipule des variables chaînes : on peut lire un mot en un seul coup (Lire (nom)), ou bien en
tant que tableau de caractères : parcourir la chaîne caractère par caractère (compter le nombre
d’apparition de la lettre ‘A’ dans un nom).
2. Le type caractère :
Comme on l’a précédemment définie un caractère peut prendre les valeurs suivantes :
- Les lettres : "A"…"Z", "a"…"z "
- Les chiffres :"0"…"9"
- Les caractères spéciaux : "*", "&", " ?", etc.
2.1 Les Fonctions standards sur les caractères :
Fonction Rôle
Asc(c) Retourne le code d’Ascii d’un
caractère
Car(i) Retourne le caractère correspondant
au code d’Ascii fournit en paramètre
Succ(c) Retourne le caractère qui vient après
le caractère fournit en paramètre
Pred(c) Retourne le caractère le caractère qui
précède le caractère fournit en
paramètre
Majus(c) Retourne la majuscule du caractère
fournit en paramètre
Exemples
Enseignante : DJEBALI Sourour Page 1
xsc(B) ; x=66
xCar(65) ; x= "A"
xSucc(h) ; x= "i"
xPred(m) ; x= "l"
xMajus(k); x="K"
Exercice d’application 1
Ecrire un algorithme qui permet d’afficher tous les codes d’Ascii des lettres de "a" à "z".
Correction
Algorithme Ascii
Variables
I :entier
Début
Pour i de "a" à "z" Faire
Ecrire(Ascii(i))
Fin Pour
Fin
3. Type chaine de caractère :
Une chaine de caractère est donc une suite de caractères.
3.1 Représentation Algorithmique :
Variables
Ch : chaine
Ch1 : chaine[10]
Dans la première déclaration on n’a pas fixé la taille de la chaine alors que dans la
deuxième on a fixé la taille de Ch1 à 10 caractères au maximum.
3.2 Opérations sur les chaines de caractères :
La Concaténation :
Cette opération permet d’ajouter une chaine à la suite d’une autre la concaténation est le
symbole « + ».
Exemple
Enseignante : DJEBALI Sourour Page 2
Ch1 "Sourour"
Ch2 "Djebali"
Ch3 " "
Ch4 Ch1+Ch3+Ch2 ; Ch4= "Sourour Djebali"
La Comparaison :
Il est possible de comparer deux chaines de caractères à l’aide des opérateurs de
comparaison ( <, <=, >, >=, =, #) et cela se fait caractère par caractère en comparant leur code
d’Ascii respectif.
Exemple
"abcd" < "abcm" car le code d’Ascii de d est inférieur au code d’Ascii de m.
3.3 Les Fonctions standards sur les chaines de caractères :
Fonction Long
Cette fonction lorsqu’elle est appliquée à une chaîne de caractères, retourne sa taille
réelle et non pas la taille maximale.
Syntaxe
Long (ch)
Exemple
Ecrire(" le mot salut est de longueur", Long("salut"))
Résultat
Le mot salut est de longueur 5.
Fonction Pos
La fonction POS retourne la position à partir de laquelle une sous-chaîne apparaisse
dans une chaîne. Dans le cas où cette sous-chaîne n’existe pas, elle retourne la valeur zéro.
Syntaxe
Pos(ch1,ch2)
Enseignante : DJEBALI Sourour Page 3
Elle retourne la position de la 1ère occurrence de ch1 dans ch2.
Exemple
Ch1"bonjour"
Ch2"jour"
xPos(Ch2,Ch1) ; x=4
Fonction Copie
Il s’agit d’extraire une sous-chaîne de taille p à partir d’une position dans une chaîne.
Syntaxe
Copie(ch,pos,p)
Exemple
Ch1"bonjour"
Ch2Copie(Ch1,4,4) ; Ch2= "jour"
3.4 Les Procédures standards sur les chaines de caractères :
Procédure Insert :
Cette procédure permet d’insérer une chaine dans une autre à une position donnée.
Syntaxe
Insert(ch1,ch2,pos)
On va insérer ch1 dans ch2 à la position pos.
Exemple
Ch1"bonjour"
Ch2"ad"
Insert(ch2,ch1,4) ; ch1= "bonadjour"
Procédure Efface :
Cette procédure permet d’effacer un certain nombre de caractères d’une chaine depuis
une position donnée.
Enseignante : DJEBALI Sourour Page 4
Syntaxe
Efface(ch,pos,p)
On va effacer p caractère de la chaine ch à partir de la position pos.
Exemple
Ch"bonjour"
Efface(Ch,4,4) ; Ch="bon"
Procédure Convch :
Cette procédure permet de convertir un nombre en une chaine de caractères.
Syntaxe
Convch(n,ch)
On va convertir le nombre n en une chaine de caractère et on va le mettre dans chaine ch.
Exemple
Convch(1976,ch) ; ch="1976"
Exercice d’application 1
Ecrire une procédure qui permet de saisir une chaine de caractères constituée seulement de
lettres ("A"…"Z", "a"…"z").
Correction
Enseignante : DJEBALI Sourour Page 5
Procédure Saisie(var ch : chaine)
Variables
i : entier
test : booléen
Début
Répéter
Ecrire("donner une chaine")
Lire(ch)
i1
testvrai
Tant que((i <= Long(ch)) et(test=vari)) Faire
Si ((Majus(ch[i]>="A") et(Majus(ch[i]<="Z")
ii+1
Sinon
testfaux
Fin Si
Fin Tant que
Jusqu’à (test=vrai)
Fin
Remarque
On peut aussi lire la chaine caractère par caractère.
Exercice d’application 2
Ecrire une procédure qui permet de convertir une chaine de lettres en majuscule.
Correction
Procédure Majuscule(var ch : chaine)
Variables
i : entier
Début
Pour i de 1 à Long(ch) Faire
ch[i]Majus(ch[i])
Fin Pour
Fin
Exercice d’application 3
Ecrire une fonction qui retourne le nombre de chiffres dans une chaine de caractères.
Correction
Enseignante : DJEBALI Sourour Page 6
Fonction Comptage (ch : chaine) :entier
Variables
i, c :ventier
Début
c0
Pour i de 1 à Long(ch) Faire
Si ((ch[i]< ="9") et (ch[i]>="0")) alors
cc+1
Fin Si
Fin Pour
Comptage c
Fin
Enseignante : DJEBALI Sourour Page 7