Операторы обработки строк в COBOL используются для выполнения нескольких функциональных операций над строками. Ниже приведены операторы обработки строк:
- Осмотреть
- строка
- расшатывать
Осмотреть
Проверка глагола используется для подсчета или замены символов в строке. Строковые операции могут выполняться с буквенно-цифровыми, числовыми или буквенными значениями. Осмотр операции выполняются слева направо. Опции, используемые для строковых операций:
Тальманские
Опция подсчета используется для подсчета строковых символов.
Синтаксис
Ниже приводится синтаксис опции Tallying —
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.
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 —
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 указывает конец строки
- Указатель и переполнение не являются обязательными
пример
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 используется для разделения одной строки на несколько подстрок. Пункт с разделителями является обязательным.
Синтаксис
Ниже приводится синтаксис глагола 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
Когда вы компилируете и запускаете вышеуказанную программу, она дает следующий результат —