#include
#include
#include
#define M 10
/* run this program using the console pauser or add your own getch, system("pause") or input loop /
/*238-6.编写判断字符串是否为回文的函数,并按书中要求输出对应结果。/
void plalindrome(char s)
{
int a,i=0,n;
n=strlen(s)-1;
for(i=0;i<n;i++)
{
if(*s!=(s+n-1-i))
{
a=0;
break;
}
}
if(a==0)
{
printf("NO");
}
else
{
printf("YES");
}
}
int main(int argc, char *argv[])
{
char str[M],*s,i=0;
while((str[i++]=getchar())!='\n');
s=str;
plalindrome(s);
return 0;
}
看到几个代码中的bug:
void plalindrome(char s)
void plalindrome(char *s)
n=strlen(s)-1;
n=strlen(s);
for(i=0;i<n;i++)
for(i=0;i<n/2;i++)
if(*s!=(s+n-1-i))
if(s[i] != s[n-1-i])
while输入之后,要补充一个
str[i] = '\0';
你代码有几个不对的地方
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define M 10
/* run this program using the console pauser or add your own getch, system("pause") or input loop /
/*238-6.编写判断字符串是否为回文的函数,并按书中要求输出对应结果。*/
void plalindrome(char *s)
{
int a=1,i=0,n;
n=strlen(s)-1;
for(i=0;i<n/2;i++)
{
if(*(s+i)!= *(s+n-1-i))
{
a=0;
break;
}
}
if(a==0)
{
printf("NO");
}
else
{
printf("YES");
}
}
int main(int argc, char *argv[])
{
char str[M],*s,i=0;
memset(str,0x0,M);
while((str[i++]=getchar())!='\n');
s=str;
plalindrome(s);
return 0;
}