加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

COBOL 字符串处理的方法

发布时间:2023-09-14 13:10:40 所属栏目:教程 来源:
导读:COBOL中的字符串处理语句用于对字符串执行多个功能操作.以下是字符串处理语句 :
Inspect
String
Unstring

Inspect
Inspect verb用于计算或替换字符串中的字符.可以对字母数字,数字或字母值执行字符串操作.检
COBOL中的字符串处理语句用于对字符串执行多个功能操作.以下是字符串处理语句 :
Inspect
String
Unstring

Inspect
Inspect verb用于计算或替换字符串中的字符.可以对字母数字,数字或字母值执行字符串操作.检查操作从左到右执行.用于字符串操作的选项如下 :

Tallying
Tallying选项用于计算字符串字符.

以下是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.
使用的参数是 :

输入字符串 : 字符串将从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语句,可以组合两个或多个字符串以形成更长的字符串. 'delimited By'条款是强制性的.

以下是String verb :

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 '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 verb用于将一个字符串拆分为多个子字符串.限定条款是强制性的.

以下是Unstring verb :

$的语法b $ b

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

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章