#include<stdio.h>
#define MAXLINE 80
int main() {
int i, k;
char line[MAXLINE];
printf("输入字符串:");
k = 0;
while ((line[k] = getchar()) != '\n') {//从标准输入中读取字符并存储在数组line中,并将字符储存在当前的位置k,直到遇到换行符\n
k++;
}
line[k] = '\n';//把换行符添加到数组末尾,因为循环中没用储存进换行符,(遇到换行循环结束了)
i = 0;//第一个字符的序号
k = k - 1;//最后一个字符的序号
while (i < k) {
if (line[i] != line[k]) {
break;
}
i++;
k--;
}
if (i >= k) {
printf("是");
}
else {
printf("不是");
}
return 0;
}
i = 0;//第一个字符的序号
k = k - 1;//最后一个字符的序号
while (i < k) {
if (line[i] != line[k]) {
break;
}
i++;
k--;
}
从字符第一个开始和最后一个字符比较,所以i从0开始,k从最后一位字符开始(k=k-1是因为数组中最后一个是换行符),若最后i>=k即说明是回文序列如radar