P086 回文字符串

03-程序设计题 软件121, 唐鼎威 964浏览

所属年份:2012.3;
请编写函数fun,该函数的功能是:判断字符串是否为回文,若是,则函数返回1,主函数中输出”YES”,否则返回0,主函数中输出”NO”。回文是指顺读和倒读都一样的字符串。
例如,字符串LEVEL是回文,而字符串123312就不是回文。

#include
#define N 80
int fun(char *str)
{

}

main()
{
char s[N];
FILE *out;
char *test[]={“1234321″,”123421″,”123321″,”abcdCBA”};
int i;
printf(“Enter a string : “);
gets(s);
printf(“\n\n”);
puts(s);
if(fun(s))
printf(“YES\n”);
else
printf(“NO\n”);
/************************************/
out=fopen(“out.dat”,”w”);
for(i=0;i<4;i++) if(fun(test[i])) fprintf(out,"YES\n"); else fprintf(out,"NO\n"); fclose(out); /************************************/ }[/cpp] 【解题思路】 判断回文就是将第一个字符与最后一个字符比较,第二个字符与倒数第二个字符进行比较,依此类推,直到中间的字符,如果比较的结果都相同,那么这个字符串就是回文,否则不是。程序中循环语句用来遍历字符串,条件语句用来判断当前字符与对应位置的字符是否相同。 【参考答案】 [cpp]int fun(char *str) { int i,n=0,fg=1; char *p=str; while (*p) /*将指针p置位到字符串末尾,并统计字符数*/ { n++; p++; } for(i=0;i