c语言栈判断回文字符串代码
时间: 2023-12-04 08:04:27 浏览: 108
好的,我可以为您提供一个简单的C语言栈实现回文字符串判断的代码示例:
```
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
typedef struct {
int top;
char data[MAX_LEN];
} Stack;
void push(Stack *s, char c) {
if (s->top < MAX_LEN) {
s->data[s->top++] = c;
}
}
char pop(Stack *s) {
if (s->top > 0) {
return s->data[--s->top];
}
return '\0';
}
int main() {
Stack s;
s.top = 0;
char str[MAX_LEN];
printf("Enter a string:");
scanf("%s", str);
int len = strlen(str);
for (int i = 0; i < len; i++) {
push(&s, str[i]);
}
for (int i = 0; i < len; i++) {
if (str[i] != pop(&s)) {
printf("Not a palindrome\n");
return 0;
}
}
printf("Palindrome\n");
return 0;
}
```
该程序通过定义一个栈结构体,使用 push() 和 pop() 函数实现栈的操作,并利用栈来判断一个字符串是否为回文字符串。程序先将字符串中的字符倒序压入栈中,再从头到尾遍历字符串,每次取出栈顶字符匹配当前字符。如果匹配失败,则说明该字符串不是回文字符串。
阅读全文