Pascal - Cordes

La chaîne en Pascal est en fait une séquence de caractères avec une spécification de taille facultative. Les caractères peuvent être numériques, lettres, blancs, caractères spéciaux ou une combinaison de tous. Extended Pascal fournit de nombreux types d'objets chaîne en fonction du système et de l'implémentation. Nous discuterons des types de chaînes les plus courants utilisés dans les programmes.

Vous pouvez définir une chaîne de plusieurs manières -

  • Character arrays - Il s'agit d'une chaîne de caractères qui est une séquence de zéro caractères ou plus de la taille d'un octet entre guillemets simples.

  • String variables - La variable de type String, telle que définie dans Turbo Pascal.

  • Short strings - La variable de type String avec spécification de taille.

  • Null terminated strings - La variable de pchar type.

  • AnsiStrings - Les réponses sont des chaînes sans limite de longueur.

Pascal ne fournit qu'un seul opérateur de chaîne, l'opérateur de concaténation de chaînes (+).

Exemples

Le programme suivant imprime les quatre premiers types de chaînes. Nous utiliserons AnsiStrings dans l'exemple suivant.

program exString;
var
   greetings: string;
   name: packed array [1..10] of char;
   organisation: string[10];
   message: pchar;

begin
   greetings := 'Hello ';
   message := 'Good Day!';
   
   writeln('Please Enter your Name');
   readln(name);
   
   writeln('Please Enter the name of your Organisation');
   readln(organisation);
   
   writeln(greetings, name, ' from ', organisation);
   writeln(message); 
end.

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Please Enter your Name
John Smith
Please Enter the name of your Organisation
Infotech
Hello John Smith from Infotech

L'exemple suivant utilise quelques fonctions supplémentaires, voyons -

program exString;
uses sysutils;
var
   str1, str2, str3 : ansistring;
   str4: string;
   len: integer;

begin
   str1 := 'Hello ';
   str2 := 'There!';
   
   (* copy str1 into str3 *)
   str3 := str1;
   writeln('appendstr( str3, str1) :  ', str3 );
   
   (* concatenates str1 and str2 *)
   appendstr( str1, str2);
   writeln( 'appendstr( str1, str2) ' , str1 );
   str4 := str1 + str2;
   writeln('Now str4 is: ', str4);
   
   (* total lenghth of str4 after concatenation  *)
   len := byte(str4[0]);
   writeln('Length of the final string str4: ', len); 
end.

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

appendstr( str3, str1) : Hello
appendstr( str1, str2) : Hello There!
Now str4 is: Hello There! There!
Length of the final string str4: 18

Fonctions et procédures Pascal String

Pascal prend en charge un large éventail de fonctions et de procédures qui manipulent des chaînes. Ces sous-programmes varient d'un outil à l'autre. Ici, nous listons divers sous-programmes de manipulation de chaînes fournis par Free Pascal -

N ° Sr. Fonction et objectif
1

function AnsiCompareStr(const S1: ; const S2:):Integer;

Compare deux chaînes

2

function AnsiCompareText(const S1: ; const S2:):Integer;

Compare deux chaînes, insensible à la casse

3

function AnsiExtractQuotedStr(var Src: PChar; Quote: Char):;

Supprime les guillemets de la chaîne

4

function AnsiLastChar(const S:):PChar;

Obtient le dernier caractère de la chaîne

5

function AnsiLowerCase(const s:):

Convertit la chaîne en minuscules

6

function AnsiQuotedStr(const S: ; Quote: Char):;

Cite une chaîne

sept

function AnsiStrComp(S1: PChar;S2: PChar):Integer;

Compare les chaînes sensibles à la casse

8

function AnsiStrIComp(S1: PChar; S2: PChar):Integer;

Compare les chaînes insensibles à la casse

9

function AnsiStrLComp(S1: PChar; S2: PChar; MaxLen: Cardinal):Integer;

Compare les caractères L des chaînes sensibles à la casse

dix

function AnsiStrLIComp(S1: PChar; S2: PChar; MaxLen: Cardinal):Integer;

Compare les caractères L des chaînes insensibles à la casse

11

function AnsiStrLastChar(Str: PChar):PChar;

Obtient le dernier caractère de la chaîne

12

function AnsiStrLower(Str: PChar):PChar;

Convertit la chaîne en minuscules

13

function AnsiStrUpper(Str: PChar):PChar;

Convertit la chaîne en majuscules

14

function AnsiUpperCase(const s:):;

Convertit la chaîne en majuscules

15

procedure AppendStr(var Dest: ; const S:);

Ajoute 2 chaînes

16

procedure AssignStr(var P: PString; const S:);

Attribue la valeur des chaînes sur le tas

17

function CompareStr(const S1: ; const S2:):Integer; overload;

Compare deux chaînes sensibles à la casse

18

function CompareText(const S1: ; const S2:):Integer;

Compare deux chaînes insensible à la casse

19 procedure DisposeStr(S: PString); overload;

Supprime la chaîne du tas

20

procedure DisposeStr(S: PShortString); overload;

Removes string from heap

21

function IsValidIdent( const Ident:):Boolean;

Is string a valid pascal identifier

22

function LastDelimiter(const Delimiters: ; const S:):Integer;

Last occurrence of character in a string

23

function LeftStr(const S: ; Count: Integer):;

Gets first N characters of a string

24

function LoadStr(Ident: Integer):;

Loads string from resources

25

function LowerCase(const s: ):; overload;

Converts string to all-lowercase

26

function LowerCase(const V: variant ):; overload;

Converts string to all-lowercase

27

function NewStr(const S:):PString; overload;

Allocates new string on heap

28

function RightStr(const S: ; Count: Integer):;

Gets last N characters of a string

29

function StrAlloc(Size: Cardinal):PChar;

Allocates memory for string

30

function StrBufSize(Str: PChar):SizeUInt;

Reserves memory for a string

31

procedure StrDispose(Str: PChar);

Removes string from heap

32

function StrPas(Str: PChar):;

Converts PChar to pascal string

33

function StrPCopy(Dest: PChar; Source:):PChar;

Copies pascal string

34

function StrPLCopy(Dest: PChar; Source: ; MaxLen: SizeUInt):PChar;

Copies N bytes of pascal string

35

function UpperCase(const s:):;

Converts string to all-uppercase