用c语言输入一段数据并利用栈结构判断回文
时间: 2023-04-04 11:04:20 浏览: 55
可以使用以下代码实现:
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100
int top = -1;
char stack[MAX_SIZE];
void push(char c) {
if (top == MAX_SIZE - 1) {
printf("Stack Overflow\n");
return;
}
stack[++top] = c;
}
char pop() {
if (top == -1) {
printf("Stack Underflow\n");
return '\0';
}
return stack[top--];
}
int main() {
char str[MAX_SIZE];
int i, len, mid;
printf("Enter a string: ");
scanf("%s", str);
len = strlen(str);
mid = len / 2;
for (i = 0; i < mid; i++) {
push(str[i]);
}
if (len % 2 != 0) {
i++;
}
while (str[i] != '\0') {
if (pop() != str[i]) {
printf("%s is not a palindrome\n", str);
return 0;
}
i++;
}
printf("%s is a palindrome\n", str);
return 0;
}