cobol字符串问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 04:09:15
定义一个变量
01 B pic X(8).

现在用两种方法将"abc"的值赋给B
1. move "abc" to B.
2. string "abc" delimited by size into B.
以上2种方法得到B的结果都为"abc ".(半角空白占了5位)
而实际想要得到B的结果为"abc".
于是进行如下的改写:
①. move "abc"0000"" to B.
②. string "abc"00"" delimited by size into B.
这样的话,B的结果就为"abc"了。

问题:
(1)②中的 "abc"00"" 这个语句,00指代的是什么含义?是null么?
""的匹配情况是怎样的?是第1个与第4个匹配,第2与第3个匹配么?
cobol的语言说明书中似乎并无相关这种用法的举例说明,请达人指点。
(2)①和②最后实现的结果都是一样的,但是为什么move语句中要用"0000"
来标识字符串结束,而不是用"00"?(这个测试过,一旦用"00",编译的
时候会报语法错误。)其中的区别在哪儿?同问string语句中为什么要
用"00"而不是用"0000"?
(3)查过其他资料,①的等价写法似乎还可以这样写:
move "abc" & X"00" to B.
这个写法中,X是指代16进制数,还是指的字符串呢?
如果指代字符串,改成这样是否可行?
move "abc","00" to B.

你说的这些,在工作当中是不会去使用的,因为cobol主要是简单,让人一眼就看明白。因此根本不会使用这样的。想想其它方法吧,或者把要求说一下。我给你一个工作中的处理方法