How to convert a string to title case in COBOL

1 Answer

0 votes
IDENTIFICATION DIVISION.
PROGRAM-ID. TitleCase.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 Input-String     PIC X(128)
    VALUE "hELLo woRLD from COBOL".
01 Output-String    PIC X(128).
01 I                PIC 9(3) COMP.
01 New-Word         PIC X VALUE "Y".
01 C                PIC X.

PROCEDURE DIVISION.
    MOVE SPACES TO Output-String.

    PERFORM VARYING I FROM 1 BY 1
            UNTIL I > LENGTH OF Input-String
        MOVE Input-String(I:1) TO C

        IF C = SPACE
            MOVE "Y" TO New-Word
            MOVE C TO Output-String(I:1)
        ELSE
            IF New-Word = "Y"
                MOVE FUNCTION UPPER-CASE(C)
                    TO Output-String(I:1)
                MOVE "N" TO New-Word
            ELSE
                MOVE FUNCTION LOWER-CASE(C)
                    TO Output-String(I:1)
            END-IF
        END-IF
    END-PERFORM

    DISPLAY Output-String
    STOP RUN.
    
  
    
*> run:
*>
*> Hello World From Cobol  
*>

 



answered 7 hours ago by avibootz
...