Pascal - String

String di Pascal sebenarnya adalah urutan karakter dengan spesifikasi ukuran opsional. Karakter bisa berupa angka, huruf, kosong, karakter khusus atau kombinasi semuanya. Extended Pascal menyediakan banyak tipe objek string tergantung pada sistem dan implementasinya. Kami akan membahas jenis string yang lebih umum digunakan dalam program.

Anda dapat menentukan string dengan banyak cara -

  • Character arrays - Ini adalah string karakter yang merupakan urutan dari nol atau lebih karakter berukuran byte yang diapit oleh tanda kutip tunggal.

  • String variables - Variabel tipe String, seperti yang didefinisikan di Turbo Pascal.

  • Short strings - Variabel tipe String dengan spesifikasi ukuran.

  • Null terminated strings - Variabel pchar Tipe.

  • AnsiStrings - Ansistring adalah string yang tidak memiliki batas panjang.

Pascal hanya menyediakan satu operator string, operator penggabungan string (+).

Contoh

Program berikut mencetak empat jenis string pertama. Kami akan menggunakan AnsiStrings pada contoh berikutnya.

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.

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

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

Contoh berikut menggunakan beberapa fungsi lagi, mari kita lihat -

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.

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

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

Fungsi dan Prosedur Pascal String

Pascal mendukung berbagai fungsi dan prosedur yang memanipulasi string. Subprogram ini bervariasi dalam penerapannya. Di sini, kami membuat daftar berbagai subprogram manipulasi string yang disediakan oleh Free Pascal -

Sr.No. Fungsi & Tujuan
1

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

Membandingkan dua string

2

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

Membandingkan dua string, case insensitive

3

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

Menghapus kutipan dari string

4

function AnsiLastChar(const S:):PChar;

Mendapat karakter terakhir dari string

5

function AnsiLowerCase(const s:):

Mengonversi string menjadi huruf kecil semua

6

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

Mengutip string

7

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

Membandingkan string yang peka huruf besar kecil

8

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

Membandingkan string peka huruf besar kecil

9

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

Membandingkan karakter L dari string case sensitive

10

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

Membandingkan karakter L dari string case insensitive

11

function AnsiStrLastChar(Str: PChar):PChar;

Mendapat karakter terakhir dari string

12

function AnsiStrLower(Str: PChar):PChar;

Mengonversi string menjadi huruf kecil semua

13

function AnsiStrUpper(Str: PChar):PChar;

Mengonversi string menjadi huruf besar semua

14

function AnsiUpperCase(const s:):;

Mengonversi string menjadi huruf besar semua

15

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

Menambahkan 2 string

16

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

Menetapkan nilai string di heap

17

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

Membandingkan dua string case sensitive

18

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

Membandingkan dua string tidak peka huruf besar / kecil

19 procedure DisposeStr(S: PString); overload;

Menghapus string dari heap

20

procedure DisposeStr(S: PShortString); overload;

Menghapus string dari heap

21

function IsValidIdent( const Ident:):Boolean;

Apakah string pengenal pascal yang valid

22

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

Kemunculan terakhir karakter dalam string

23

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

Mendapat karakter N pertama dari sebuah string

24

function LoadStr(Ident: Integer):;

Memuat string dari sumber daya

25

function LowerCase(const s: ):; overload;

Mengonversi string menjadi huruf kecil semua

26

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

Mengonversi string menjadi huruf kecil semua

27

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

Mengalokasikan string baru di heap

28

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

Mendapat karakter N terakhir dari sebuah string

29

function StrAlloc(Size: Cardinal):PChar;

Mengalokasikan memori untuk string

30

function StrBufSize(Str: PChar):SizeUInt;

Menyimpan memori untuk string

31

procedure StrDispose(Str: PChar);

Menghapus string dari heap

32

function StrPas(Str: PChar):;

Mengonversi PChar menjadi string pascal

33

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

Menyalin string pascal

34

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

Menyalin N byte dari string pascal

35

function UpperCase(const s:):;

Mengonversi string menjadi huruf besar semua