c语言使用栈判断字符串是否中心对称
时间: 2023-05-17 14:05:34 浏览: 142
可以使用栈来判断字符串是否中心对称。具体做法是将字符串的前一半压入栈中,然后依次比较栈中的字符和字符串后一半的字符是否相等。如果相等,则继续比较,否则说明不是中心对称的字符串。以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
int len, i, mid;
char stack[MAX_LEN / 2];
int top = -1;
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
mid = len / 2;
for (i = 0; i < mid; i++) {
stack[++top] = str[i];
}
if (len % 2 == 1) {
i = mid + 1;
} else {
i = mid;
}
while (i < len) {
if (stack[top] == str[i]) {
top--;
i++;
} else {
break;
}
}
if (top == -1) {
printf("%s 是中心对称的字符串\n", str);
} else {
printf("%s 不是中心对称的字符串\n", str);
}
return 0;
}
```
注意:这段代码只是一个示例,实际应用中需要考虑更多的情况,比如字符串长度为奇数和偶数的情况,以及字符串中可能包含空格等特殊字符的情况。