请用出栈入栈的方法写一个c++代码给我
时间: 2024-01-29 14:01:47 浏览: 22
Sure! 以下是一个使用栈实现的反转字符串的示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 100
typedef struct Stack {
char data[MAX_LEN];
int top;
} Stack;
void initStack(Stack *s) {
s->top = -1;
}
int isEmpty(Stack *s) {
return s->top == -1;
}
int isFull(Stack *s) {
return s->top == MAX_LEN - 1;
}
void push(Stack *s, char c) {
if (isFull(s)) {
printf("Stack overflow!");
exit(1);
}
s->data[++s->top] = c;
}
char pop(Stack *s) {
if (isEmpty(s)) {
printf("Stack underflow!");
exit(1);
}
return s->data[s->top--];
}
void reverseString(char *s) {
Stack stack;
initStack(&stack);
int len = strlen(s);
for (int i = 0; i < len; i++) {
push(&stack, s[i]);
}
for (int i = 0; i < len; i++) {
s[i] = pop(&stack);
}
}
int main() {
char str[MAX_LEN];
printf("Input a string: ");
fgets(str, MAX_LEN, stdin);
// 去掉末尾的回车符
str[strcspn(str, "\n")] = '\0';
reverseString(str);
printf("Reversed string: %s\n", str);
return 0;
}
```
如果您有其他问题,请随时问我。