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 |