- COBOL 教程
- COBOL - 首頁
- COBOL - 概述
- COBOL - 環境設定
- COBOL - 程式結構
- COBOL - 基本語法
- COBOL - 資料型別
- COBOL - 基本動詞
- COBOL - 資料佈局
- COBOL - 條件語句
- COBOL - 迴圈語句
- COBOL - 字串處理
- COBOL - 表格處理
- COBOL - 檔案處理
- COBOL - 檔案組織
- COBOL - 檔案訪問模式
- COBOL - 檔案處理動詞
- COBOL - 子程式
- COBOL - 內部排序
- COBOL - 資料庫介面
- COBOL 有用資源
- COBOL - 問題和解答
- COBOL - 快速指南
- COBOL - 有用資源
COBOL - 字串處理
COBOL 中的字串處理語句用於對字串執行多種功能操作。以下是字串處理語句:
- 檢查
- 字串
- 拆分字串
檢查
Inspect 動詞用於計數或替換字串中的字元。字串操作可以對字母數字、數字或字母值執行。Inspect 操作從左到右執行。用於字串操作的選項如下:
計數
計數選項用於計數字符串字元。
語法
以下是計數選項的語法:
INSPECT input-string TALLYING output-count FOR ALL CHARACTERS
使用的引數為:
- input-string - 要計數其字元的字串。
- output-count - 用於儲存字元計數的資料項。
示例
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-CNT1 PIC 9(2) VALUE 0. 01 WS-CNT2 PIC 9(2) VALUE 0. 01 WS-STRING PIC X(15) VALUE 'ABCDACDADEAAAFF'. PROCEDURE DIVISION. INSPECT WS-STRING TALLYING WS-CNT1 FOR CHARACTER. DISPLAY "WS-CNT1 : "WS-CNT1. INSPECT WS-STRING TALLYING WS-CNT2 FOR ALL 'A'. DISPLAY "WS-CNT2 : "WS-CNT2 STOP RUN.
JCL 以執行上述 COBOL 程式。
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = HELLO
編譯並執行上述程式後,將產生以下結果:
WS-CNT1 : 15 WS-CNT2 : 06
替換
替換選項用於替換字串字元。
語法
以下是替換選項的語法:
INSPECT input-string REPLACING ALL char1 BY char2.
使用的引數為:
input-string - 字串,其字元將從 char1 替換為 char2。
示例
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-STRING PIC X(15) VALUE 'ABCDACDADEAAAFF'. PROCEDURE DIVISION. DISPLAY "OLD STRING : "WS-STRING. INSPECT WS-STRING REPLACING ALL 'A' BY 'X'. DISPLAY "NEW STRING : "WS-STRING. STOP RUN.
JCL 以執行上述 COBOL 程式。
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = HELLO
編譯並執行上述程式後,將產生以下結果:
OLD STRING : ABCDACDADEAAAFF NEW STRING : XBCDXCDXDEXXXFF
字串
String 動詞用於連線字串。使用 STRING 語句,可以將兩個或多個字元字串組合成一個較長的字串。“Delimited By” 子句是強制性的。
語法
以下是 String 動詞的語法:
STRING ws-string1 DELIMITED BY SPACE ws-string2 DELIMITED BY SIZE INTO ws-destination-string WITH POINTER ws-count ON OVERFLOW DISPLAY message1 NOT ON OVERFLOW DISPLAY message2 END-STRING.
以下是所用引數的詳細資訊:
- ws-string1 和 ws-string2:要連線的輸入字串
- ws-string:輸出字串
- ws-count:用於計算新連線字串的長度
- Delimited 指定字串的結尾
- Pointer 和 Overflow 是可選的
示例
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-STRING PIC A(30).
01 WS-STR1 PIC A(15) VALUE 'Tutorialspoint'.
01 WS-STR2 PIC A(7) VALUE 'Welcome'.
01 WS-STR3 PIC A(7) VALUE 'To AND'.
01 WS-COUNT PIC 99 VALUE 1.
PROCEDURE DIVISION.
STRING WS-STR2 DELIMITED BY SIZE
WS-STR3 DELIMITED BY SPACE
WS-STR1 DELIMITED BY SIZE
INTO WS-STRING
WITH POINTER WS-COUNT
ON OVERFLOW DISPLAY 'OVERFLOW!'
END-STRING.
DISPLAY 'WS-STRING : 'WS-STRING.
DISPLAY 'WS-COUNT : 'WS-COUNT.
STOP RUN.
JCL 以執行上述 COBOL 程式:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = HELLO
編譯並執行上述程式後,將產生以下結果:
WS-STRING : WelcomeToTutorialspoint WS-COUNT : 25
拆分字串
Unstring 動詞用於將一個字串拆分為多個子字串。“Delimited By” 子句是強制性的。
語法
以下是 Unstring 動詞的語法:
UNSTRING ws-string DELIMITED BY SPACE INTO ws-str1, ws-str2 WITH POINTER ws-count ON OVERFLOW DISPLAY message NOT ON OVERFLOW DISPLAY message END-UNSTRING.
示例
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-STRING PIC A(30) VALUE 'WELCOME TO TUTORIALSPOINT'.
01 WS-STR1 PIC A(7).
01 WS-STR2 PIC A(2).
01 WS-STR3 PIC A(15).
01 WS-COUNT PIC 99 VALUE 1.
PROCEDURE DIVISION.
UNSTRING WS-STRING DELIMITED BY SPACE
INTO WS-STR1, WS-STR2, WS-STR3
END-UNSTRING.
DISPLAY 'WS-STR1 : 'WS-STR1.
DISPLAY 'WS-STR2 : 'WS-STR2.
DISPLAY 'WS-STR3 : 'WS-STR3.
STOP RUN.
JCL 以執行上述 COBOL 程式:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = HELLO
編譯並執行上述程式後,將產生以下結果:
WS-STR1 : WELCOME WS-STR2 : TO WS-STR3 : TUTORIALSPOINT
廣告
