十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#include stdio.h
按需开发网站可以根据自己的需求进行定制,网站设计制作、网站制作构思过程中功能建设理应排到主要部位公司网站设计制作、网站制作的运用实际效果公司网站制作网站建立与制做的实际意义
#includestring.h
int main(){
char str1[255],str2[255];
int j,i;
printf("Please enter a word:");
scanf("%s",str1);
for(i=0;str1[i]!='\0';i++);
i=i-1;
for(j=0;i=0;i--,j++){
str2[j]=str1[i];
}
//j=j++;
printf("%s",str2);
if(strcmp(str1,str2)){
printf("The string is not a palindrome.\n");
}
else{
printf("The string is a palindrome.\n");
}
return 0;
}
#include stdio.h
#includestdio.h
#includestring.h
int daozhi(char str[])//这个函数直接判断是不是回文,不需要你把字符串倒置了再判断两个字符串一样
{
int i,n;
char *s = str;
n=strlen(str);//strlen可以直接统计字符的个数
for(i = 0;i = n / 2;++i)
if(s[i]!= s[n-i-1])
return 0;
return 1;
}
int main()
{
char a[10];
int c;
printf("please input a word\n");
scanf("%s",a);
c=daozhi(a);
if(c==1)
printf("YES\n");
else
printf("NO");
}
我对你的函数做了修改结果可以正确运行,修改如下
int mirror(char *p)
{
int len=0;char *t=p;
while(*(t++))len++; //变量len 其实可以不要
t=t-2;
while(( *p==*t ) (t=p) ) //
{
p++;t--;
}
if(tp) //字符个数为奇数数个,且字符串为回文时修改指针
{
--p;
++t;
}
if(t==p || *p==*t) //
return 1;
else
return 0;
}
/*我想你的错误在于忽略考虑回文的字符串个数是偶数还是奇数,以及忽略了字符串结尾还有一个终止字符\0,
应该仔细考虑你的循环对指针的影响*/