Reverse a String
Problem Description
Accept a string and display it reversed.
Expected Output
Input: HELLO -> Output: OLLEH
Hints
Use reference modification to access characters.
Solution
IDENTIFICATION DIVISION.
PROGRAM-ID. REVERSE.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-INPUT PIC X(50).
01 WS-OUTPUT PIC X(50).
01 WS-LEN PIC 9(2).
01 WS-I PIC 9(2).
01 WS-J PIC 9(2).
PROCEDURE DIVISION.
DISPLAY "ENTER A STRING: ".
ACCEPT WS-INPUT.
MOVE FUNCTION LENGTH(FUNCTION TRIM(WS-INPUT)) TO WS-LEN.
MOVE 1 TO WS-J.
PERFORM VARYING WS-I FROM WS-LEN BY -1 UNTIL WS-I < 1
MOVE WS-INPUT(WS-I:1) TO WS-OUTPUT(WS-J:1)
ADD 1 TO WS-J
END-PERFORM.
DISPLAY "REVERSED: " WS-OUTPUT.
STOP RUN.
Explanation:
Reference modification: VAR(start:length) accesses substring.