【发布时间】:2021-10-01 19:21:16
【问题描述】:
IDENTIFICATION DIVISION.
PROGRAM-ID. KATA.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-INPUT PIC A(200).
01 WS-OUT PIC A(200).
01 I PIC 9(08).
01 J PIC 9(08).
01 INP-LEN PIC 9(08).
PROCEDURE DIVISION.
DISPLAY "INPUT YOUR STRING"
ACCEPT WS-INPUT
DISPLAY "REVERSING ......."
MOVE FUNCTION LENGTH(FUNCTION TRIM(WS-INPUT TRAILING)) TO INP-LEN
DISPLAY "Just for reference : Your string is "INP-LEN " long"
MOVE 1 to I.
PERFORM VARYING J from INP-LEN by -1 UNTIL J =0
MOVE WS-INPUT(I:1) to WS-OUT(J:1)
MOVE FUNCTION TRIM(WS-OUT TRAILING) TO WS-OUT
ADD 1 to I
END-PERFORM
MOVE FUNCTION TRIM(WS-OUT TRAILING) TO WS-OUT.
DISPLAY WS-OUT
DISPLAY FUNCTION LENGTH(WS-OUT)
STOP RUN.
运行程序输入ctrl test
如果你运行程序你会看到WS-INPUT的长度是:
Just for reference : Your string is 00000009 long
但是如果你这样做是为了输出它会说字符串的长度是200
我得到的反转字符串也是:
tset lrtc
这是 200,而不是我设置的。
谁能解释我哪里出错了,我能做些什么来解决它?
(注意:我最初尝试使用函数REVERSE,所以很简单
MOVE FUNCTION REVERSE(WS-INPUT) TO WS-OUTPUT
同样的问题也存在 )
【问题讨论】: