个性化阅读
专注于IT技术分析

COBOL-字符串处理

本文概述

字符串处理语句在COBOL中用于执行字符串操作。 COBOL提供了三种类型的用于字符串处理的语句:

  • 检查
  • String
  • 解锁

检查

检查动词替换或计算字符串中的一个字符或一组字符。在数字, 字母或字母数字值上, 我们可以执行字符串操作。检查操作是从左到右进行的。

Inspect提供了两个选项, 如下所示:

合计?

计数用于计算字符串字符。

语法如下:

INSPECT input-string
TALLYING output-count FOR ALL CHARACTERS

这里, 输入字符串和输出字符串是参数。输入字符串是要对其字符进行计数的字符串。而输出字符串是保存字符数的数据项。

例子:

让我们看一下Tallying选项的示例:

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 ALL 'F'.
             DISPLAY "WS-CNT1 : " WS-CNT1.
           INSPECT WS-STRING TALLYING WS-CNT2 FOR ALL 'A'.
             DISPLAY "WS-CNT2 : " WS-CNT2.
   
       STOP RUN.

输出如下:

COBOL字符串处理

更换

替换选项将替换字符串字符。

语法如下:

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 'ABCDBCDBDEBBBBF'.

       PROCEDURE DIVISION.
           DISPLAY "OLD STRING : "WS-STRING.
            INSPECT WS-STRING REPLACING ALL 'B' BY '$'.
             DISPLAY "NEW STRING : "WS-STRING.
   
       STOP RUN.

输出如下:

COBOL字符串处理

String

字符串动词用于将两个或多个字符串或文字的部分或全部内容连接到一个数据项中。在字符串动词中, ” DELIMITED BY”子句是强制性的。

语法如下:

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:用于计算新的串联字符串的长度。
  • 带分隔符:用于指定字符串的结尾。
  • 指针和溢出:这些是可选的。

例子:

我们来看一个字符串动词的示例:

IDENTIFICATION DIVISION.
           PROGRAM-ID. HELLO.

       DATA DIVISION.
           WORKING-STORAGE SECTION.
           01 WS-STRING PIC A(30).
           01 WS-STR1 PIC A(15) VALUE 'Worldsrcmini'.
           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.

输出如下:

COBOL字符串处理

解锁

UNSTRING动词将一个字符串分成几个子字符串。 unstring动词中必须使用’DELIMITED BY’子句。

语法如下:

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.

例子:

我们来看一个Unstring动词的示例:

IDENTIFICATION DIVISION.
       PROGRAM-ID. HELLO.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 WS-STRING PIC A(30) VALUE 'WELCOME TO srcmini'.
       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.

输出如下:

COBOL字符串处理

赞(0)
未经允许不得转载:srcmini » COBOL-字符串处理

评论 抢沙发

评论前必须登录!