这个回文程序哪里出错了?

来源:百度知道 编辑:UC知道 时间:2024/06/15 07:19:34
/*写函数int back(char *str)判断串str是否是回文.(回文是正读和反读都一样的字符串*/
#include <stdio.h>
#include <string.h>
char *back(char *str);
void main ()
{
char str[80],str1[80];
gets(str);
strcpy(str1,str);
if (strcmp(back(str),str1)==0)
printf("yes");
else
printf("no");

}
char *back(char *str)
{
int i,len;

len=strlen(str);
for (i=len-1;i>=0;i--)
{
printf("%c",str[i]);
}

printf("\n");
return str;
}

你的back方法,只是把str反向输出,并没有把str真正反向。
把back方法改成:
char *back(char *str)
{
int i,len;
char temp;

len=strlen(str);
for (i=len-1;i>len/2;i--)
{
temp = str[i];
str[i] = str[len-i-1];
str[len-i-1] = temp;
}
printf("%s",str);

printf("\n");
return str;
}