Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
← Back to String Handling
String Handling | Intermediate | COBOL

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.