题目要求
输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。
输入格式:
输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。
输出格式:
输出在第1行中输出字符串。如果它是回文字符串,在第2行中输出Yes,否则输出No。
输入样例1:
level
输出样例1:
level
Yes
输入样例2:
1 + 2 = 2 + 1 =
输出样例2:
1 + 2 = 2 + 1 =
No
代码:
#include <stdio.h>
#include <string.h>
int main()
{
char a[100] = {0};
gets(a); //输入字符数组
int len = strlen(a)-1; //取得数组长度
int i = 0;
while (i < len)
{
if (a[i] != a[len]) //从数组的两头向中间逐步判断是否相同
break; //如果不同则直接退出
i++;
len--;
}
puts(a);
if (i>=len) //i如果小于len则说明提前退出即不是回文数组
printf("Yes");
else
printf("No");
return 0;
}