从键盘输入一个字符串判断该字符串是否为回文即正读和逆读都一样的字符串第1行是从键盘输入的字符串第2行是使用第一种方法输出的判断结果第3行是使用第二种方法输出的判断结果要求使用两种判断方法假设字符串存放在数组a中数组长度可定义为50或100: i 第一种方法在数组b中存放逆序的字符串判断数组a和数组b中的字符串是否相同 ii 第二种方法仅使用数组a通过循环的方式判
输入: level 输出: Yes Yes
输入: hello 输出: No No
代码实现:
#include <stdio.h> #include <string.h>
int main() { char a[100], b[100]; int len, i, j, flag = 1; // 输入字符串 scanf("%s", a); // 计算字符串长度 len = strlen(a); // 复制字符串到数组b中,并反转字符串 for (i = 0; i < len; i++) { b[i] = a[len - 1 - i]; } // 比较字符串a和b是否相同 for (i = 0; i < len; i++) { if (a[i] != b[i]) { flag = 0; break; } } // 输出第一种方法的结果 if (flag == 1) { printf("Yes\n"); } else { printf("No\n"); } // 重置标志位 flag = 1; // 比较字符串a中对应的字符是否相同 for (i = 0, j = len - 1; i <= j; i++, j--) { if (a[i] != a[j]) { flag = 0; break; } } // 输出第二种方法的结果 if (flag == 1) { printf("Yes\n"); } else { printf("No\n"); } return 0; }
原文地址: https://www.cveoy.top/t/topic/bu4r 著作权归作者所有。请勿转载和采集!