C语言-判断输入字符串是否为回文串
通过定义一个s字符数组,gets函数控制输入
i、j双指针来回判断字符数组的位置,和对应位置的值的比较,
while循环的条件 i<=j&&s[i]==s[j]
最终判断i、j的关系,如果i<=j说明存在对应位置不等的情况就是不是回文串
#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;
}
运行代码,先编译