如何在COBOL中将两个未知长度的字符串连接在一起?例如:
WORKING-STORAGE.
FIRST-NAME PIC X(15) VALUE SPACES.
LAST-NAME PIC X(15) VALUE SPACES.
FULL-NAME PIC X(31) VALUE SPACES.
如果FIRST-NAME = 'JOHN '
和LAST-NAME = 'DOE '
,我该如何获得:
FULL-NAME = 'JOHN DOE '
而不是:
FULL-NAME = 'JOHN DOE '
答案 0 :(得分:4)
我相信以下内容会给你你想要的东西。
STRING
FIRST-NAME DELIMITED BY " ",
" ",
LAST-NAME DELIMITED BY SIZE
INTO FULL-NAME.
答案 1 :(得分:3)
乍一看,解决方案是使用参考修改STRING一起两个字符串,包括空格。问题是你必须知道FIRST-NAME中有多少尾随空格,否则你会产生类似'JOHNbbbbbbbbbbbbDOE'的东西,其中b是一个空格。
没有内在的COBOL函数来确定字符串中的尾随空格的数量,但是有一个用于确定字符串中前导空格的数量。因此,据我所知,最快的方法是反转名字,查找前导空格的数量,并使用引用修改将名字和姓氏串在一起。
您必须将这些字段添加到工作存储中:
WORK-FIELD PIC X(15) VALUE SPACES.
TRAILING-SPACES PIC 9(3) VALUE ZERO.
FIELD-LENGTH PIC 9(3) VALUE ZERO.
答案 2 :(得分:0)
您可以尝试进行循环以获取实际长度。