编写函数,判断一个字符串是否是回文,如是返回1,否则返回-1.(回文是指这个字符串逆置后不变,如:aba就是回文)。在主函数中调用该函数判断输入的字符串是否为回文。
解决思路:比较对应字符是否相等(i与n-i-1),停止时刻 i>=i/2
#include <stdio.h>
#include <string.h>
#define N 100
int main()
{ char s[N];
int i=0,j;
printf("Input a String: \n");
//输入一个字符串赋值给s
gets(s);
//j的初始值为s字符串最后一个位置
j=strlen(s)-1;
//进行while判断i、j的位置和i、j位置的值的关系
while(i<=j&&s[i]==s[j]){
//每比较一次就i右移、j左移一位
i++;j--;
}
//判断最终i和j的的位置
//根据i、j的位置最终是会互相超越的,所以如果i<=j说明存在对应位置不等的情况就是不是回文串
if (i<=j)
{printf("不是回文字符串\n");}
else{ printf("是回文字符串\n");}
return 0;
}