1、问题
//如果参数字符串是个回文,函数就返回真,否则返回假。回文就是指一个字符串从左向右和从右向左读是一样的。函数应该忽略所有的非字母字符,而且在进行字符比较时不用区分大小写。
2、代码实现
#include <stdio.h>
#include <ctype.h>//如果参数字符串是个回文,函数就返回真,否则返回假。回文就是指一个字符串从左向右和从右向左读是一样的。函数应该忽略所有的非字母字符,而且在进行字符比较时不用区分大小写。
int palindrome(char *string)
{if (string == NULL)return 0;char *start = string;char *end = string;//把end指向'\0',然后退以下,这里不要写成while (*end++ != '\0');//不然需要--end两次while (*end != '\0'){++end; }//尾巴指针退到字符串末尾--end;while (start < end){//这里不能用if,if只能移动一个非字符的下标,如果非字符是//连续的话,这里用if就会有问题while (!isalpha(*start))++start;while (!isalpha(*end))--end;//只要发现不相等,就返回0if (*start != *end)return 0;++start;--end