MODULE Strings; PROCEDURE Length*(s : ARRAY OF CHAR) : INTEGER; VAR i : INTEGER; BEGIN WHILE s[i] # 0X DO INC(i) END; RETURN i; END Length; (* PROCEDURE Insert*(source : ARRAY OF CHAR; pos : INTEGER; VAR dest : ARRAY OF CHAR); END Insert; *) (* PROCEDURE Append*(extra : ARRAY OF CHAR; VAR dest : ARRAY OF CHAR); END Append; *) (* PROCEDURE Delete*(VAR s : ARRAY OF CHAR; pos, n : INTEGER); END Delete; *) (* PROCEDURE Replace*(source : ARRAY OF CHAR; pos : INTEGER; VAR dest : ARRAY OF CHAR); END Replace; *) (* PROCEDURE Extract*(source : ARRAY OF CHAR; pos, n : INTEGER; VAR dest : ARRAY OF CHAR); END Extract; *) (* PROCEDURE Pos*(pattern, s : ARRAY OF CHAR; pos : INTEGER): INTEGER; BEGIN RETURN 0; END Pos; *) PROCEDURE Cap*(VAR s : ARRAY OF CHAR); VAR i : INTEGER; BEGIN FOR i := 0 TO Length(s) - 1 DO s[i] := CAP(s[i]) END; END Cap; END Strings.