Vous êtes sur la page 1sur 2

LMD2 : Informatique

Operations sur les chaines:


Chaines de caractères (STRING)
13 Affectation:
Elle se fait entre deux variables de type string
Une chaine de caractères est une chaine dont l’espace mémoire utilisé est défini
(statique) et donc limité, ou dynamique dont la longueur est limitée par la mémoire Exemple:
disponible. Mot1, Mot2: string[20];
Mot3: string[5];
Mot1:=Mot2; est juste
Chaines statiques Mot3:=Mot1; est fausse
En pascal les chaines statiques sont des tableaux de caractères. Les deux déclarations
suivantes sont équivalentes :

Var Longueur d'une chaine:


T : array[1..10] of char ;
S: string[10]; Length (chaine);

Exemple:
Chaines dynamiques Mot1:= 'university of batan';
Donc longth (mot1) est 19
Les chaines dynamiques sont des chaines dont la taille n’est pas prédéfinie. Elles sont
déclarées comme suivant :

Var Suppression des caractères dans une chaine:


S : string ;
Delete (chaine, positionDebut, nombreDeCaracteres);
Exemple:
Program bonjour; Exemple:
Uses wincrt; Texte: string [20];
Var Posit: integer;
S : string ; Delete (texte, posit, 2);
Begin
S :=’bonjour’ ; Si texte est : 'university of batna';
End; Et si posit=5 donc le résultat est:
'Univsity of batna' la chaine supprimée est 'er'.
On peut redéfinir la longueur d’une chaine avec la fonction SetLength :
Insertion des caractères dans une chaine:
Var s : string ;
Begin Insert (sousChaine, chaine, positionDebut);
S := ’abcde’ ; {la longueur est de 5 caractères}
setLength (s, 3) ; {redéfinir la longueur} Exemple:
writeln (s); {afficher le resultat} Insert ('the', texte, 1);
Si texte est 'university of Batna' alors le résultat est: 'the university of batna'
ce code affichera : abc
LMD2 : Informatique

Conversion du numérique en chaine: Concaténation des chaines:

STR (valeur, variableChaine); Concat (chaine1, chaine2,...., chaineN);

Exemple: Exemple:
n: integer; Mot1, mot2, mot3: string[20];
Chaine: string[5]; Mot1:= 'university';
Str (n, chaine); Mot2:= ' of';
Mot3:= ' batna';
Si n=1962 alors chaine reçoit '1962' comme chaine. Concat (mot1, mot2, mot3); aurai comme résultat: 'university of batna';

Conversion d'une chaine en numérique: Position d'un caractère ou sous chaine dans une chaine:

Val (chaine, variable, variableEntiere); Pos (sousChaine, chaine);

Exemple: Exemple:
Mot1:= 'university of batna';
N, indice: integer; Mot2:= 'university';
Chaine: string[5]; Pos ('batna', mot1); est 15
Val(chaine, n, indice); Pos ('mot2, mot1); est 1.

Si chaine est '1962' alors val (chaine, n, indice) aurai comme valeur 1962 (entier) et
indice=0

Si chaine='1962h' alors pas de conversion et indice=5 car le caractère qui a empêché la


conversion 'h' est en position 5.

Copier une chaine:

Copy (chaine, position, longueur);

Exemple:

Chaine: string[10];
Chaine := 'university';
Copy (chaine, 4, 3); aurai comme valeur 'ver' cette valeur correspond a la sous chaine
commençant en position 4 et de longueur 3.