We will discuss more common types of strings used in programs.
You can define a string in many ways −
- Character arrays − This is a character string which is a sequence of zero or more byte-sized characters enclosed in single quotes.
- String variables − The variable of String type, as defined in Turbo Pascal.
- Short strings − The variable of String type with size specification.
- Null terminated strings − The variable of pchar type.
- AnsiStrings − Ansistrings are strings that have no length limit.
Examples
The following program prints first four kinds of strings. We will use AnsiStrings in the next example.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.When the above code is compiled and executed, it produces the following result −
Please Enter your Name John Smith Please Enter the name of your Organisation Infotech Hello John Smith from InfotechFollowing example makes use of few more functions, let's see −
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.When the above code is compiled and executed, it produces the following result −
appendstr( str3, str1) : Hello appendstr( str1, str2) : Hello There! Now str4 is: Hello There! There! Length of the final string str4: 18
Pascal String Functions and Procedures
Pascal supports a wide range of functions and procedures that manipulate strings. These subprograms vary implement-wise. Here, we are listing various string manipulating subprograms provided by Free Pascal −| Sr.No. | Function & Purpose |
|---|---|
| 1 |
function AnsiCompareStr(const S1: ; const S2:):Integer; Compares two strings |
| 2 |
function AnsiCompareText(const S1: ; const S2:):Integer; Compares two strings, case insensitive |
| 3 |
function AnsiExtractQuotedStr(var Src: PChar; Quote: Char):; Removes quotes from string |
| 4 |
function AnsiLastChar(const S:):PChar; Gets last character of string |
| 5 |
function AnsiLowerCase(const s:): Converts string to all-lowercase |
| 6 |
function AnsiQuotedStr(const S: ; Quote: Char):; Quotes a string |
| 7 |
function AnsiStrComp(S1: PChar;S2: PChar):Integer; Compares strings case-sensitive |
| 8 |
function AnsiStrIComp(S1: PChar; S2: PChar):Integer; Compares strings case-insensitive |
| 9 |
function AnsiStrLComp(S1: PChar; S2: PChar; MaxLen: Cardinal):Integer; Compares L characters of strings case sensitive |
| 10 |
function AnsiStrLIComp(S1: PChar; S2: PChar; MaxLen: Cardinal):Integer; Compares L characters of strings case insensitive |
| 11 |
function AnsiStrLastChar(Str: PChar):PChar; Gets last character of string |
| 12 |
function AnsiStrLower(Str: PChar):PChar; Converts string to all-lowercase |
| 13 |
function AnsiStrUpper(Str: PChar):PChar; Converts string to all-uppercase |
| 14 |
function AnsiUpperCase(const s:):; Converts string to all-uppercase |
| 15 |
procedure AppendStr(var Dest: ; const S:); Appends 2 strings |
| 16 |
procedure AssignStr(var P: PString; const S:); Assigns value of strings on heap |
| 17 |
function CompareStr(const S1: ; const S2:):Integer; overload; Compares two strings case sensitive |
| 18 |
function CompareText(const S1: ; const S2:):Integer; Compares two strings case insensitive |
| 19 | procedure DisposeStr(S: PString); overload; Removes string from heap |
| 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 |
No comments:
Post a Comment