Chaînes. Présentation

Une chaîne est une liste (ou séquence) de caractères dans un ordre spécifique. La séquence entière de caractères est traitée comme une seule entité.

Un caractère est tout ce que vous pouvez taper sur le clavier avec une seule touche (lettre, chiffre, barre oblique inverse ou tout autre caractère).
Les chaînes peuvent contenir des espaces : "Hello world !".
Une chaîne vide est une chaîne qui contient 0 caractères.
Pascal reconnaît comme des chaînes tout ce qui est écrit en apostrophes (' ').
En Pascal, une chaîne est de type string.

Vous pouvez écrire une nouvelle valeur dans une chaîne à l'aide de l'instruction d'entrée lu(s); Vous pouvez également simplement attribuer une valeur de chaîne à la variable, telle que   s := 'Python'; Vous pouvez déterminer la longueur d'une chaîne à l'aide de la fonction intégrée longueur n := longueur(s)


Comparaison de chaînes

Les chaînes peuvent être comparées les unes aux autres, tout comme les nombres. Vous pouvez déterminer laquelle des lignes est la plus grande, laquelle est la plus petite.

Lors de la comparaison de chaînes, les codes de caractères sont comparés. Il existe des dizaines, voire des centaines, d'encodages de caractères. La façon la plus simple de comprendre ce concept est de comprendre l'un des plus simples, ASCII (lire ici).   ;
Il est nécessaire de comprendre que dans les encodages modernes, les lettres russes et anglaises sont classées par ordre alphabétique, les chiffres vont également du plus petit au plus grand. 
Par exemple, dans la table des codes ASCII, le code de la lettre anglaise 'A' - 65, lettres 'a' - 97, chiffre '0' a le code 48. Les lettres russes sont situées dans la partie étendue de la table des codes ASCII (numéros de 128 à 255). Les majuscules viennent avant (c'est-à-dire qu'elles ont un code plus petit) que les minuscules.
Dans la plupart des tables d'encodage utilisées, les modèles sont les mêmes, les lettres minuscules sont postérieures aux lettres majuscules, les chiffres sont antérieurs aux lettres et les lettres russes postérieures aux lettres anglaises.

Par exemple : "locomotive"  < "bateau à vapeur", parce que les mots diffèrent dans la cinquième lettre et "dans" < "x".

Malheureusement, il n'y a pas de fonction en Pascal qui permettrait de lire plusieurs lignes séparées par des espaces à partir d'une seule ligne. Pour ce faire, vous devez écrire votre propre fonction : vars, w : chaîne ; i, j, ind : entier ; a : tableau de chaîne ; commencer lecture(s) ; setlength(a, longueur(s)); je := 1; ind := 0; pendant que je < longueur(s) faire commencer tandis que (i < longueur(s)) et ('' + s[i] = ' ') do i += 1; j := je + 1; w := '' + s[i] ; tandis que (j < longueur(s)) et ('' +s[j] <> ' ') commencent w += s[j] ; j += 1; fin; a[ind] := w; ind += 1 ; je := j; fin; écrire(a[0], a[1]); fin.

En conséquence, nous obtenons un tableau de chaînes.

Les chaînes peuvent être additionnées à l'aide du signe "+". Cette opération est appelée concaténation de chaînes ou concaténation
Par exemple,  s := 'Salut, '; s1 := 'monde'; écrireln(s + s1); L'écran affichera la phrase "Hello world" (sans citations).

Référencer les index de lignes
Chaque caractère d'une chaîne a son propre numéro (appelé index), et l'indexation dans le langage de programmation Pascal commence à partir de un. Autrement dit, le premier caractère a l'index 1, le second l'index 2, et ainsi de suite.
Les caractères de chaîne sont accessibles par des index, qui sont indiqués entre crochets s[i].
 
Exemple 
Chaîne S H e l l o
Index S[1] S[2] S[3] S[4] S[5]

PS De nombreuses méthodes de chaîne dans PascalABC.NET supposent que les chaînes sont indexées à partir de zéro. Nous n'utiliserons pas de méthodes de chaîne qui fonctionnent avec des index de base zéro pour le moment. Il existe des remplacements équivalents pour ceux-ci avec des fonctions externes qui supposent que les lignes sont indexées à partir de 1. 
 

Puisqu'un caractère est accessible par index, vous pouvez utiliser une boucle variable pour itérer sur tous les caractères, ce qui prendra des valeurs d'index possibles. Par exemple, un programme qui affiche tous les codes de caractères de la chaîne s ressemblerait à ceci pour i := 1 à longueur(s) faire écrireln(s[i], ord(s[i])) Explications du programme :
1) La fonction longueur(s) trouve la longueur d'une chaîne. L'indice du premier caractère est 1 et l'indice du dernier est longueur(s). La variable de boucle i prendra juste des valeurs de 1 à longueur(s).
2) Dans chaque ligne, le symbole lui-même sera affiché en premier, puis son code, qui est renvoyé par la fonction intégrée ord()

La même énumération peut être écrite plus courte : pour c dans s faire      écrireln(c, ord(c)); Dans ce fragment, l'en-tête de la boucle parcourt tous les caractères s, les plaçant tour à tour dans la variable c.

La particularité de Pascal lorsqu'il travaille avec des chaînes est que les chaînes sont des objets modifiables. En d'autres termes, nous pouvons modifier les caractères individuels d'une chaîne.
Par exemple, l'instruction suivante fonctionnera s[5] := 'a'; Vous pouvez également composer une nouvelle chaîne à partir des caractères avec les modifications requises.
Par exemple, un programme qui remplace tous les caractères "a" aux caractères "b" ressemblera à ceci : lire(s);     for i := 1 to length(s) do begin         si s[i] = 'a'alors s[i] := 'b';     fin; écri(s); Dans cet exemple, nous parcourons tous les caractères de la chaîne s. Dans le corps de la boucle, on vérifie la valeur de la variable s[i] : si le caractère correspond au caractère 'a', alors on le remplace par 'b'.