c语言中输入一个字符串判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。 程序运行后首先在屏幕上显示提示:输入字符串:等待用户输入一个字符串。 如输入:abcdefgh则输出:不是回文串。 如输入:abccba则输出:是回文串。请帮下列代码修改错误#include stdioh#include stringhint main printf输入字符串:; ch
修改后的代码如下:
#include <stdio.h> #include <string.h>
int main() { printf("输入字符串:"); char a[100]; char b[100]; gets(a); int len,i,j; len=strlen(a); for(i=len-1,j=0;i>=0;i--,j++) { b[j]=a[i]; } b[j]='\0'; if(strcmp(a,b)==0) printf("是回文串"); else printf("不是回文串"); return 0; }
主要的修改点如下:
-
在循环中,i和j的初始值应该分别为len-1和0,而不是len-1和1。
-
循环条件应该是i>=0,而不是i>j。
-
循环体内对b数组的赋值应该在循环体结束后再加上b[j]='\0';,表示字符串结束符。
-
最后的输出应该加上换行符,即printf("是回文串\n");或printf("不是回文串\n");。
原文地址: http://www.cveoy.top/t/topic/bPs4 著作权归作者所有。请勿转载和采集!