#include
#include
int main()
{
char str[100];
int i, j, len, flag;
while (1)
{
printf("请输入字符串:");
scanf("%s", str);
if (strcmp(str, "BYE") == 0) //输入BYE结束程序
break;
flag = 1; //初始化为1,表示是回文字符串
len = strlen(str);
//从两端开始判断
for (i = 0, j = len - 1; i < len / 2; i++, j--)
{
if (str[i] != str[j]) //只要有一个字符不相同,说明不是回文字符串
{
flag = 0;
break;
}
}
if (flag == 1)
printf("是回文字符串\n");
else
printf("不是回文字符串\n");
}
return 0;
}
这里使用了一个while
循环,当输入BYE
时,程序结束。在每次循环中,先读入一个字符串,然后使用双指针的方法,从字符串的两端开始判断。如果在遇到中间的位置之前,发现有两个字符不相同,就可以判断这个字符串不是回文字符串。最后根据flag
的值,输出相应的结果。