RosettaCodeData/Task/Reverse-a-string/Oberon/reverse-a-string.oberon

29 lines
485 B
Plaintext

MODULE reverse;
IMPORT Out, Strings;
VAR s: ARRAY 12 + 1 OF CHAR;
PROCEDURE Swap(VAR c, d: CHAR);
VAR oldC: CHAR;
BEGIN
oldC := c; c := d; d := oldC
END Swap;
PROCEDURE Reverse(VAR s: ARRAY OF CHAR);
VAR len, i: INTEGER;
BEGIN
len := Strings.Length(s);
FOR i := 0 TO len DIV 2 DO
Swap(s[i], s[len - 1 - i])
END
END Reverse;
BEGIN
s := "hello, world";
Reverse(s);
Out.String(s);
Out.Ln
END reverse.