Vous êtes sur la page 1sur 4

Chaînes de caractères

1. Définition
Les chaînes de caractères sont des séquences finies de caractères.
Le nombre de caractères composant une chaîne de caractères est la longueur de cette chaîne.
Une chaîne de longueur nulle ne comprend aucun caractère : c’est la chaîne vide.
En algorithmique, une chaîne de caractères est désignée entre deux apostrophes.

Exemple
• La chaîne de caractères 'Baobab' est constituée des caractères 'B', 'a', 'o', 'b', 'a' et 'b'.
• La chaîne de caractères '123' n'est constituée que de chiffres (à ne pas confondre avec la valeur
numérique 123).
• La chaîne de caractères '' représente une chaîne de caractères vide.
• La chaîne de caractères ' ' est une chaîne de caractères ne contenant qu'un seul caractère qui est ici
le caractère espace (à ne pas confondre avec la chaîne de caractères vide).

2. Déclaration
On déclare une chaîne de caractères en utilisant la syntaxe suivante :
a. En algorithmique : On utilise deux façons en indiquant ou non le nombre de caractères :
Première façon : var nom_variable : chaine [longueur] ;
Deuxième façon : var nom_variable : chaine ;
b. en langage Pascal
var nom_variable : string [longueur] ;
var nom_variable : string ;
En l’absence de la précision de la longueur, Pascal réserve automatiquement la taille maximale, à
savoir 255 caractères.

Exemple :
En algorithmique
var ch : chaîne [10] ; ou var ch : chaîne ;
En langage Pascal
char ch [10] ; // la longueur maximale de la chaîne est 10.

3. Initialisation d’une chaîne de caractères


Pour initialiser une chaîne de caractères, nous déclarons la variable chaîne et affectons sa valeur
initiale.

Exemple :
En algorithmique :
Var TXT : chaine [15] ;
TXT ← 'Bonjour' ; // initialisation de la variable TXT à la chaîne 'Bonjour'.

4. Accès aux éléments d’une chaîne de caractères


L'accès à un élément d'une chaîne de caractères peut se faire de la même façon que l'accès à un
élément d'un tableau.

Exemple : Pour la chaîne TXT précédente, nous avons :


TXT[0] = 'b' ; TXT[1] = 'o' ; TXT[2] = 'n’; TXT[3] = 'j' ; TXT[4] = 'o' ; TXT[5] = 'u' ; TXT[6] = 'r' ;

5. Lecture et affichage
En algorithmique, une chaîne de caractères est lue (affichée) globalement (d'un seul coup) et non pas
caractère par caractère.
Exemple :
Lire (TXT) ; Ecrire (TXT) ;

6. Comparaison de chaînes de caractères


Dans un système informatique, à chaque caractère est associé une valeur numérique (en mémoire) :
son code ASCII.
Pour comparer deux chaînes de caractères, on compare les caractères de même rang dans les deux
chaînes en commençant par le premier caractère de chaque chaîne.

Exemples :
• 'baobab' < 'sport' car le code ASCII de b (98 en base 10) est inférieur au code ASCII de 's' (115 en base
10).
• "baobab" > "banania" car le code ASCII de 'o' (111) est supérieur au code ASCII de 'n'(110).
La comparaison ne peut pas se faire sur les deux premiers caractères car ils sont identiques.
• '333’ > '1230’ car le code ASCII de '3' (51) est supérieur au code ASCII de '1' (49).
• '333' < '3330' car la seconde chaîne a une longueur supérieure à celle de la première (la comparaison
ne peut pas se faire sur les trois premiers caractères car ils sont identiques).
• 'Baobab' < "baobab" car le code ASCII de 'b' (98) est supérieur au code ASCII de 'B' (66).

7. Quelques Fonctions et procédures sur les chaînes de caractères

a. En algorithmique
Exercices

Exercice 1

Exercice 2

Exercice 3
Ecrire un algorithme permettant de lire un prénom et un nom, ensuite de les concaténer en une seule
chaîne de caractères. Le nom et le prénom doivent être séparés par un point. Affichez enfin la
longueur de la chaîne résultante. Traduire l’algorithme en Pascal.

Exercice 4
Ecrire un algorithme permettant de lire deux chaînes de caractères, et de les afficher par ordre
alphabétique. Traduire l’algorithme en Pascal.

Exercice 5
Ecrire un algorithme permettant de lire une chaîne de 20 caractères maximum, et de calculer le
nombre d’apparition d’un caractère lu à partir du clavier. Traduire l’algorithme en Pascal.

Exercice 6
Ecrire un algorithme permettant de calculer le nombre de mots dans un texte lu à partir du clavier.
On suppose que : le texte est une suite de caractères simples ('a'..'z', 'A'..'Z'). Les mots sont séparés par
des espaces (' '). Un espace n’existe que pour séparer deux mots successifs. Un texte contient au moins
un mot. Traduire l’algorithme en Pascal.

Exercice 7
Ecrire un algorithme permettant de calculer le nombre d’apparition d’un mot dans un texte. Le mot et
le texte étant tous les deux lus à partir du clavier.
On suppose que le texte est une suite de caractères simples ('a'..'z', 'A'..'Z'). Les mots sont séparés par
des espaces (' '). Un espace n’existe que pour séparer deux mots successifs. Un texte contient au moins
un mot. Traduire l’algorithme en Pascal.

Exercice 8
Ecrire un algorithme qui affiche la conversion d’un entier positif en binaire. Le nombre binaire doit être
stocké sous forme de chaîne de caractères. Traduire l’algorithme en Pascal.
Exercice 9
Ecrire un programme Pascal permettant de lire un tableau de 10 chaînes de 5 caractères maximum,
puis affiche le dernier caractère de chaque chaîne.

Exercice 10
Ecrire un programme Pascal permettant de saisir un tableau de 10 mots de 20 caractères maximum, et
d’afficher à nouveau le tableau avec son contenu en majuscule, et trié par ordre alphabétique.
Il est à noter que le principe de tri d’un tableau de mots par ordre alphabétique est identique au tri
d’un tableau de nombres par ordre croissant.

Exercice 11
Ecrire un algorithme permettant de saisir dix noms d’étudiants avec leurs moyennes, puis d’afficher le
nom de l’étudiant qui a la plus grande moyenne ainsi que celle-ci. La liste des noms et celle des notes
étant stockées dans des tableaux. Traduire l’algorithme en Pascal.

Exercice 12
On considère des candidats inscrits à une formation diplômante. Si la note obtenue à cette formation
est supérieure ou égale à 10, alors le candidat est admis. Ecrire l’algorithme permettant d’afficher la
liste des candidats admis avec leurs notes (les noms des candidats et les notes étant lus à partir du
clavier, et stockés dans des tableaux). Traduire l’algorithme en Pascal.

Exercice 13
On considère des candidats inscrits à une formation diplômante. Chaque candidat va obtenir une note
pour cette formation. Ecrire l’algorithme permettant d’afficher la liste des candidats dont la note est
supérieure ou égale à la moyenne des notes de tous les candidats (les noms des candidats et les notes
étant lus à partir du clavier, et stockés dans des tableaux). Traduire l’algorithme en Pascal.

Vous aimerez peut-être aussi