IMPLEMENTATION MODULE StrCase ;
FROM ASCII IMPORT nul ;
FROM StrLib IMPORT StrLen ;
PROCEDURE StrToUpperCase (a: ARRAY OF CHAR ; VAR b: ARRAY OF CHAR) ;
VAR
higha,
highb,
i : CARDINAL ;
BEGIN
higha := StrLen(a) ;
highb := HIGH(b) ;
i := 0 ;
WHILE (i<higha) AND (a[i]#nul) AND (i<highb) DO
b[i] := Cap(a[i]) ;
INC(i)
END ;
IF i<highb
THEN
b[i] := nul
END
END StrToUpperCase ;
PROCEDURE StrToLowerCase (a: ARRAY OF CHAR ; VAR b: ARRAY OF CHAR) ;
VAR
higha,
highb,
i : CARDINAL ;
BEGIN
higha := StrLen(a) ;
highb := HIGH(b) ;
i := 0 ;
WHILE (i<higha) AND (a[i]#nul) AND (i<highb) DO
b[i] := Lower(a[i]) ;
INC(i)
END ;
IF i<highb
THEN
b[i] := nul
END
END StrToLowerCase ;
PROCEDURE Cap (ch: CHAR) : CHAR ;
BEGIN
IF (ch>='a') AND (ch<='z')
THEN
ch := CHR( ORD(ch)-ORD('a')+ORD('A') )
END ;
RETURN( ch )
END Cap ;
PROCEDURE Lower (ch: CHAR) : CHAR ;
BEGIN
IF (ch>='A') AND (ch<='Z')
THEN
ch := CHR( ORD(ch)-ORD('A')+ORD('a') )
END ;
RETURN( ch )
END Lower ;
END StrCase.