66 lines
1.4 KiB
Plaintext
66 lines
1.4 KiB
Plaintext
// Uppercase and Lowercase functions for a minimal standard Pascal
|
|
// where no library routines for these operations exist
|
|
PROGRAM upperlower;
|
|
|
|
// convert a character to uppercase
|
|
FUNCTION uch(ch: CHAR): CHAR;
|
|
BEGIN
|
|
uch := ch;
|
|
IF ch IN ['a'..'z'] THEN
|
|
uch := chr(ord(ch) AND $5F);
|
|
END;
|
|
|
|
// convert a character to lowercase
|
|
FUNCTION lch(ch: CHAR): CHAR;
|
|
BEGIN
|
|
lch := ch;
|
|
IF ch IN ['A'..'Z'] THEN
|
|
lch := chr(ord(ch) OR $20);
|
|
END;
|
|
|
|
// toggle uper/lower case character
|
|
FUNCTION ulch(ch: CHAR): CHAR;
|
|
BEGIN
|
|
ulch := ch;
|
|
IF ch IN ['a'..'z'] THEN ulch := uch(ch);
|
|
IF ch IN ['A'..'Z'] THEN ulch := lch(ch);
|
|
END;
|
|
|
|
// convert a string to uppercase
|
|
FUNCTION ucase(str: STRING): STRING;
|
|
var i: Integer;
|
|
BEGIN
|
|
ucase := '';
|
|
FOR i := 1 TO Length(str) DO
|
|
ucase := ucase + uch(str[i]);
|
|
END;
|
|
|
|
// convert a string to lowercase
|
|
FUNCTION lcase(str: STRING): STRING;
|
|
var i: Integer;
|
|
BEGIN
|
|
lcase := '';
|
|
FOR i := 1 TO Length(str) DO
|
|
lcase := lcase + lch(str[i]);
|
|
END;
|
|
|
|
// reverse cases in a given string
|
|
FUNCTION ulcase(str: STRING): STRING;
|
|
var i: Integer;
|
|
BEGIN
|
|
ulcase := '';
|
|
FOR i := 1 TO Length(str) DO
|
|
ulcase := ulcase + ulch(str[i]);
|
|
END;
|
|
|
|
VAR
|
|
ab : STRING = 'alphaBETA';
|
|
|
|
BEGIN
|
|
// demonstration
|
|
Writeln('Original string : ',ab);
|
|
Writeln('Reversed case : ',ulcase(ab));
|
|
Writeln('Upper case : ',ucase(ab));
|
|
Writeln('Lower case : ',lcase(ab));
|
|
END.
|