提示:先求出字符串的长度len,然后通过循环判断字符串的对称位置的字符 是否相等,只要有一个不等,则结束判断,可以判定为非回文。如果全部相等, 则为回文。可以定义两个变量 i 和 j,分别指向字符串的开始和末尾,然后没判 断一次,移动一次(i++,j--)。
int palindrome(char *s){ //定义返回值为布尔类型的函数
char *a = s; //定义一个新指针指向s
int i = 0,j=0,k=0;
while (*a != '\0'){ //使用指针a最字符串进行遍历,统计字符串位数
a++;
i++;
}
a--; //因为最后一位为'\0'所以减一位
while (*s != '\0'){ //进行两个比较
if (*s == *a){
k++;
}
else{
return 0;//在遍历过程中有对应不相等的项,直接返回false
}
s++;//指针s正向遍历与a进行比较
a--;//指针a反向遍历与s进行比较
}
if (k == i){ //如果k与i相等则说明在遍历过程中字符串正向与反向对应相等,返回true
return 1;
}
}