Word Count
Problem Description
Count the number of words in a sentence. Input: "HELLO WORLD COBOL" -> 3 words
Expected Output
Number of words in input
Hints
Count transitions from space to non-space.
Solution
IDENTIFICATION DIVISION.
PROGRAM-ID. WORDCNT.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-TEXT PIC X(200).
01 WS-LENGTH PIC 999.
01 WS-I PIC 999.
01 WS-WORD-COUNT PIC 999 VALUE 0.
01 WS-IN-WORD PIC 9 VALUE 0.
01 WS-CHAR PIC X.
PROCEDURE DIVISION.
DISPLAY "ENTER TEXT: ".
ACCEPT WS-TEXT.
MOVE FUNCTION LENGTH(FUNCTION TRIM(WS-TEXT)) TO WS-LENGTH.
MOVE 0 TO WS-IN-WORD.
PERFORM VARYING WS-I FROM 1 BY 1 UNTIL WS-I > WS-LENGTH
MOVE WS-TEXT(WS-I:1) TO WS-CHAR
IF WS-CHAR = SPACE
MOVE 0 TO WS-IN-WORD
ELSE
IF WS-IN-WORD = 0
ADD 1 TO WS-WORD-COUNT
MOVE 1 TO WS-IN-WORD
END-IF
END-IF
END-PERFORM.
DISPLAY "WORD COUNT: " WS-WORD-COUNT.
STOP RUN.
Explanation:
Track state (in word or not) while scanning. Count word starts.