Format Phone Number
Problem Description
Accept 10-digit phone and format as (XXX) XXX-XXXX. Input: 1234567890 -> (123) 456-7890
Expected Output
Formatted phone number output
Hints
Use reference modification to extract parts.
Solution
IDENTIFICATION DIVISION.
PROGRAM-ID. FORMATPH.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-PHONE PIC X(10).
01 WS-FORMATTED.
05 FILLER PIC X VALUE "(".
05 WS-AREA PIC X(3).
05 FILLER PIC XX VALUE ") ".
05 WS-PREFIX PIC X(3).
05 FILLER PIC X VALUE "-".
05 WS-LINE PIC X(4).
PROCEDURE DIVISION.
DISPLAY "ENTER 10-DIGIT PHONE: ".
ACCEPT WS-PHONE.
IF FUNCTION LENGTH(FUNCTION TRIM(WS-PHONE)) NOT = 10
DISPLAY "INVALID: MUST BE 10 DIGITS"
STOP RUN
END-IF.
MOVE WS-PHONE(1:3) TO WS-AREA.
MOVE WS-PHONE(4:3) TO WS-PREFIX.
MOVE WS-PHONE(7:4) TO WS-LINE.
DISPLAY "FORMATTED: " WS-FORMATTED.
STOP RUN.
Explanation:
Use reference modification and structured output field for formatting.