编写函数,判断输入的字符串是否为“回文”,并在 main()函数中调用。函数形式为: int palindrome(char *s); /*是回文,返回值为 1,否则返回 0*/

提示:先求出字符串的长度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;
    }
}