REPUBLIQUE TUNISIENNE
MINISTERE DE L’ENSEIGNEMENT SUPERIEURE ET
DE LA RECHERCHE SCIENTIFIQUE
Institut Supérieur d’Informatique el Kef
Cours
Algorithme et
Structure des
données
Présentée par: Marwa Benali
Niveau : Première année
Classe: LIRI
Année universitaire 2022/2023
Chapitre 6: Les chaines de caractères
Objectifs :
-Comprendre la notion de chaine de caractère.
-Manipuler des chaines de caractères
Éléments de contenu :
-Le type caractère
Les Fonctions standards sur les caractères
-Les chaines de caractères.
Opérations sur une chaine de caractère
Les Fonctions standards sur les chaines de
caractères.
Les procédures de standards sur les chaines
de caractères.
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).
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.
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 qui précède
le caractère fournit en paramètre
Majus(c) Retourne la majuscule du caractère
fournit en paramètre
Exemple
x Asc(B) ; x=66
x Car(65) ; x= "A"
x Succ(h) ; x= "i"
x Pred(m) ; x= "l"
x Majus(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
Type chaine de caractère :
Une chaine de caractère est donc une suite de caractères.
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.
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
Ch1 ¬ " Marwa"
Ch2 ¬ "Benali"
Ch3 ¬ " "
Ch4 ¬ Ch1+Ch3+Ch2 ;
Ch4= "MarwaBenali"
Exemple
"abcd" < "abcm" car le code d’Ascii de d est inférieur au code d’Ascii de m.
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)
Elle retourne la position de la 1ère occurrence de ch1 dans ch2.
Exemple
Ch1¬"bonjour"
Ch2¬"jour"
x¬Pos(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"
Ch2¬Copie(Ch1,4,4) ; Ch2= "jour"
Les Procédures standards sur les chaines de caractères :
a) 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"
b) Procédure Efface :
Cette procédure permet d’effacer un certain nombre de caractères d’une chaine depuis une
position donnée.
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"
c) 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
Procédure Saisie(var ch : chaine)
Variables
i : entier
test : booléen
Début
Répéter
Ecrire("donner une chaine")
Lire(ch)
i 1
Test vrai
Tant que((i <= Long(ch)) et(test=vari)) Faire
Si ((Majus(ch[i]>="A") et(Majus(ch[i]<="Z")
i i+1
Sinon
Test faux
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.
Fonction Comptage (ch : chaine) :entier
Variables
i, c :entier
Début
c¬0
Pour i de 1 à Long(ch) Faire
Si ((ch[i]< ="9") et (ch[i]>="0")) alors
c¬c+1
Fin Si
Fin Pour
Comptage¬ c
Fin
Exercice 4
Une chaîne de caractère est dite palindrome si elle est symétrique et donc se lit de la
même manière de gauche à droite et vice versa. Exp : radar, anna.
Ecrire une procédure ,qui affiche si une chaine donnée en paramètre est un
palindrome ou pas.
Correction
Procédure Palindrome (mot: chaine)
Variables
i,L : entier
Début
L←Long(mot)
i←1
Tant que ((i<= L div 2) et mot[i]=mot[L-i-1]) faire
i← i+1
FinTanque
Si (i=(L div 2)+1)
alors
Ecrire(mot,"est palindrome")
Sinon
Ecrire (mot,"n'est pas palindrome")
FinSi
Fin