Title here
Summary here
Our program demonstrates various string-related functions in Pascal. Here’s the full source code:
program StringFunctions;
uses
SysUtils;
procedure PrintLine(const s: string);
begin
WriteLn(s);
end;
var
p: procedure(const s: string);
begin
p := PrintLine;
// Here's a sample of string functions available in Pascal.
// Some of these are part of the standard library, while others
// are from the SysUtils unit.
p('Contains: ' + BoolToStr(Pos('es', 'test') > 0, True));
p('Count: ' + IntToStr(Length('test') - Length(StringReplace('test', 't', '', [rfReplaceAll]))));
p('HasPrefix: ' + BoolToStr(Copy('test', 1, 2) = 'te', True));
p('HasSuffix: ' + BoolToStr(RightStr('test', 2) = 'st', True));
p('Index: ' + IntToStr(Pos('e', 'test') - 1));
p('Join: ' + StringReplace('a,b', ',', '-', [rfReplaceAll]));
p('Repeat: ' + StringOfChar('a', 5));
p('Replace: ' + StringReplace('foo', 'o', '0', [rfReplaceAll]));
p('Replace: ' + StringReplace('foo', 'o', '0', []));
p('Split: ' + '[' + StringReplace('a-b-c-d-e', '-', ' ', [rfReplaceAll]) + ']');
p('ToLower: ' + LowerCase('TEST'));
p('ToUpper: ' + UpperCase('test'));
end.To run the program, save it as string_functions.pas and compile it using a Pascal compiler like Free Pascal:
$ fpc string_functions.pas
$ ./string_functions
Contains: TRUE
Count: 2
HasPrefix: TRUE
HasSuffix: TRUE
Index: 1
Join: a-b
Repeat: aaaaa
Replace: f00
Replace: f0o
Split: [a b c d e]
ToLower: test
ToUpper: TESTThis example demonstrates various string manipulation functions in Pascal. Some key differences from other languages:
1-based indexing, so the Index function returns 1 for the first occurrence (equivalent to 0 in many other languages).StringReplace function is used for both Replace and Join operations.Split function, so we simulated it using StringReplace.BoolToStr function is used to convert boolean results to strings.These functions provide a good starting point for string manipulation in Pascal. For more advanced string operations, you might need to implement custom functions or use additional libraries.