题目描述:所谓回文字符串是指一个正读和反读都一样的字符串,比如“level”或者
“noon”就是回文串。编写一个函数Palindrome(char *str),该函数用于判断字符串str 是否
为回文,若是则返回1,否则返回0。在main函数中,输入-一个字符串s,调用函数Palindrome,
判断字符串s是否为回文串,若是则输出“Yes”, 否则输出“No”。
如图所示
首尾判断是否相等,逐步到中心,如果都像等则回文
#include <stdio.h>
#include <string.h>
int Palindrome(char *str)
{
int len = strlen(str);
for(int i=0;i<len/2;i++)
{
if(*(str+i) != *(str+len-i-1))
return 0;
}
return 1;
}
int main()
{
char s[101] = {0};
gets(s);
if(Palindrome(s) == 1)
printf("Yes");
else
printf("No");
return 0;
}
#include <stdio.h>
int Palindrome(char *str)
{
char *q=str;
while(*q!='\0')
q++;
q--;
while(str){
if(*str==*q){
str++;
q--;
}else{
return 0;
}
}
return 1;
}
int main()
{
int i;
char a[100];
gets(a);
i= Palindrome(a);
if(i==1)
printf("Yes");
else
printf("No");
return 0;
}
供参考:
#include <stdio.h>
int Palindrome(char *str)
{
char *p = str, *q = str;
while (*q) q++; q--;
while (p < q && *p == *q ) p++,q--;
return p - q >= 0;
}
int main()
{
char str[256];
gets(str);
if (Palindrome(str))
printf("Yes");
else
printf("No");
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!