1、题目
请编写函数fun,函数的功能是:判断字符串是否为回文?若是,函数返回1
2、程序分析
回文是指顺读和倒读都一样的字符串。例如,字符串LEVEL是回文,而字符串123312就不是回文。
解题思路:
由于回文是指顺读和倒读是一样的字符串,所以可以以中间字符为对称点,通过循环判断字符串中对称位置上的字符是否相同,如果相同,则是回文,否则不是。
3、程序源代码
#include<stdio.h>
#define MAX 100
int fun(char*s)
{
int i,n=0,flag=1;
char*p=s;
while(*p)
{
n++;
p++;
}
for(i=0;i<n/2;i++)
if(s[i]==s[n-1-i]);
else
{
flag=0;
break;
}
return flag;
}
int main()
{
char str[MAX];
FILE*out;
char*t[]={"121","123","asa","abc"};
int i;
printf("Enter a string: ");
fgets(str,MAX,stdin);
printf("\n\n");
puts(str);
if(fun(str))
printf(" YES\n");
else
printf(" NO\n");
out=fopen("outfile.dat","w");
for(i=0;i<4;i++)
if(fun(t[i]))
fprintf(out,"YES\n");
else
fprintf(out,"NO\n");
fclose(out);
}
4、输入输出