首页 > 解决方案 > 如何将字符串复制到另一个变量中

问题描述

创建一个程序,要求用户输入一个单词。检查这个词是否是回文。

当我输入 LOL 时,它说这不是回文。请帮助我

   DISPLAY "Enter a word to check if it is a Palindrome: "
        ACCEPT WS-STR1

        MOVE FUNCTION REVERSE(WS-STR1)TO WS-STR2
        DISPLAY WS-STR1
        DISPLAY WS-STR2
   IF  WS-STR1(1:1) = WS-STR2(15:1)
   AND WS-STR1(2:1) = WS-STR2(14:1)
   AND WS-STR1(3:1) = WS-STR2(13:1)
   AND WS-STR1(4:1) = WS-STR2(12:1)
   AND WS-STR1(5:1) = WS-STR2(11:1)
   AND WS-STR1(6:1) = WS-STR2(10:1)
   AND WS-STR1(7:1) = WS-STR2(9:1)

           DISPLAY "A PALINDROME! "
   ELSE
           DISPLAY "NOT A PALINDROME "
       END-IF.

标签: cobol

解决方案


两件事情。首先,如果您要反转字符串,请删除空格,否则它将永远不会匹配。第二。回文反转等于自身,因此无需逐字节比较字符串 a = 反转字符串 a

   DISPLAY "Enter a word to check if it is a Palindrome: "
   ACCEPT WS-STR1

   MOVE FUNCTION REVERSE(FUNCTION TRIM(WS-STR1)) TO WS-STR2
   DISPLAY WS-STR1
   DISPLAY WS-STR2

   IF WS-STR1 = WS-STR2
      DISPLAY "A PALINDROME! "                          
   ELSE             
      DISPLAY "NOT A PALINDROME "             
   END-IF

   STOP RUN.

推荐阅读