本实例采用栈来实现,注意:
- 栈是一种后进先出设计原则;
- 栈顶指针必须初始化;
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main() {
char a[101], s[101];
int i, len, mid, next, top;
printf("Input strings:\n");
gets_s(a);//读取一行字符串
len = (int)strlen(a);
mid = len / 2 - 1;//求字符串的中点
top = 0;
for (i = 0; i <= mid; i++) {
s[++top] = a[i];//入栈
}
//判断奇数偶数,找要匹配的起始下标
if (len % 2 == 0)
next = mid + 1;
else
next = mid + 2;
for (i = next; i <= len - 1; i++) {
if (a[i] != s[top])
break;
top--;
}
//若top=0,则匹配成功
if (top == 0)
printf("Yes\n");
else
printf("NO\n");
return 0;
}