Académique Documents
Professionnel Documents
Culture Documents
I. Introduction
En informatique, une chaîne de caractères est une suite ordonnée de caractères. La chaîne de
caractères est un type de données dans de nombreux langages informatiques. La plupart des
langages de programmation offrent une classe ou un type dédié à la représentation et à la
manipulation des chaînes de caractères.
II. Définition
Il est possible de déclarer des constantes de type STRING. On peut aussi déclarer des
variables de type STRING.
III. Déclaration
Syntaxe
Exemple
Var nom: string;
Var nom : string [20];
IV .Notation indicielle
Une chaîne de caractères est, par définition, composée de caractères. Ces caractères sont
indexés à partir de 1. Le premier caractère a pour indice 1, le second a pour indice 2, etc . . .
Le dernier caractère a pour indice la longueur de la chaîne.
On accède au caractère d'indice i d'une chaîne S avec la notation S[i].
Si S est une chaîne, alors S[i] est un caractère.
program exemple;
var S : STRING;
c : CHAR;
begin
S := 'algorithme';
c := S[3];
Write ( c );
end.
program exemple;
var S : STRING;
begin
S := 'algurithme';
S[4] := 'o';
write (S );
end.
Exemple
chr(65)='A';
chr(97)='a';
Les opérateurs =, <, <=, > et >= permettent de comparer deux caractères. Si c1 et c2 sont deux
expressions de type CHAR, alors
chaine_1 = chaine_2 est vrai si et seulement si les deux chaînes de caractères sont
égales ;
chaine_1 < chaine_2 est vrai si et seulement si la chaîne de caractère chaine_1 vient
strictement avant chaine_2 dans l'ordre lexicographique ;
Exemples
V.2.2. Concaténation
La concaténation est l’opération qui consiste à construire une chaîne de caractères en mettant
bout à bout deux ou plusieurs chaînes de caractères. L'opération de concaténation de chaines
se fait par la fonction :
Exemple
program concatener ;
var nom , prenom , nom_complet : string;
begin
write('Saisissez votre nom : ');
readln(nom);
write('Saisissez votre prénom : ');
readln(prenom);
nom_complet := concat(nom, ' ', prenom);
write(nom_complet);
end.
V.2.3. Quelques fonctions prédéfinies sur les chaînes
V.2.3.1. Longueur d'une chaîne
Cette fonction permet de retourner la longueur d'une chaine de caractères ( c'est-à-dire le
nombre de caractères formant cette chaine).Elle est définie comme suit:
Exemple
Affichage de la longueur d'une chaine saisie par l'utilisateur.
program longueur_chaine;
var chn : string;
begin
write ('veuillez saisir une chaine');
read(chn);
write('La longueur de la chaine est : ', length(chn)) ;
end.
Exemple
Un programme qui affiche le résultat de la copie des 4 premiers caractères d'une chaine saisie
par l'utilisateur.
program copier ;
var chaine_1, chaine_2 : string;
begin
write('Saisissez une chaine: ');
readln(chaine_1);
chaine_2 := copy(chaine_1, 1, 4);
write(chaine_2);
end.
Consiste à rechercher une chaine ch1 dans une autre chaine ch2. Dans le cas où ch1 apparait
dans ch2, alors la position du premier caractère de ch1 dans ch2 est retournée .
Pos(CH1,CH2 : STRING);
pos(CH1,CH2) donne l'indice de la position de la chaîne CH1 dans la chaîne CH2 si elle s'y
trouve, et donne 0 sinon.
Exemple 1
pos('algo','algorithmique') = 1.
pos('algu','algorithmique') = 0.
Exemple 2
Programme qui vérifie si la chaine de caractères que vous avez saisi contient le mot
'algorithme' .
program verification ;
var ch : string;
begin
write('Saisissez votre chaine : ');
readln(ch);
if (pos ('algorithme',ch)>0) then
write('le mot existe')
else
write('le mot n''existe pas');
end.
Exercice 1
Exercice 2
Ecrire un programme qui permet d'afficher le nombre d'occurrences d'un caractère dans une
chaine de caractères donnée.
Exercice 3
Soit un vecteur T_nom qui contient 20 éléments de type string . Ecrire un programme qui
donne le premier élément dans l'ordre alphabétique et sa position dans le vecteur.
Indication
Exercice 4
Ecrire un programme qui détermine si un mot choisi par l’utilisateur est un palindrome.
Un palindrome est un mot qui se lit de la même manière de gauche à droite et de droite à
gauche.
Exercice 5
Exercice 1
program inverse ;
Var mot1,mot2: string[20];
i:integer;
begin
write('veuillez saisir un mot');
read(mot1);
mot2:=mot1[length (mot1)];
for i:=length (mot1)-1 downto 1 do
mot2:=concat(mot2,mot1[i]);
write( 'l''inverse du mot est ', mot2);
end.
Exercice 2
program recherche;
if (occ=0) then
end.
Exercice 3
program ordre_alphabetique;
var T_nom: array[1..5] of string;
i,ind:integer;
x:string;
begin
writeln('veuillez remplir le tableau');
for i:=1 to 5 do
begin
write ('T_nom[',i,']=');
readln (T_nom[i]);
end;
x:=T_nom[1];
ind:=1;
for i:=2 to 5 do
if (T_nom[i] <x )then
begin
x:=T_nom[i];
ind:=i;
end;
writeln ('le premier élément dans l''ordre alphabétique est ', x);
write ('sa position est ',ind);
end.
Exercice 4
program palindrome ;
var ch:string[50];
pal : boolean;
i,j:integer;
Begin
writeln ('saisir votre chaine');
readln(ch);
i:=1 ;
j:=length(ch) ;
Pal:=true ;
while ( i<j) and Pal do
begin
if (ch[i]<>ch[j] ) then
Pal:=false ;
i:=i+1 ;
j:=j-1 ;
end;