用C语言数据结构实现字符串逆序输出 例abcde输出为edcba
时间: 2024-05-08 19:18:50 浏览: 120
可以使用栈这种数据结构来实现字符串的逆序输出。
具体实现步骤如下:
1. 定义一个栈,用于存储字符串中的每个字符。
2. 遍历字符串中的每个字符,将其依次压入栈中。
3. 遍历完字符串后,依次从栈中弹出字符,并打印出来,即可实现字符串的逆序输出。
以下是C语言代码实现:
```
#include<stdio.h>
#define MAX_SIZE 100
//定义栈结构体
typedef struct Stack{
char data[MAX_SIZE];
int top;
}Stack;
//初始化栈
void Init(Stack *S){
S->top = -1;
}
//判断栈是否为空
int IsEmpty(Stack *S){
return S->top == -1;
}
//判断栈是否已满
int IsFull(Stack *S){
return S->top == MAX_SIZE - 1;
}
//压入栈顶
void Push(Stack *S, char ch){
if(IsFull(S)){
printf("栈已满,无法插入!");
}else{
S->data[++S->top] = ch;
}
}
//弹出栈顶
char Pop(Stack *S){
if(IsEmpty(S)){
printf("栈已空,无法弹出!");
return '\0';
}else{
return S->data[S->top--];
}
}
//字符串逆序输出函数
void Reverse(char *str){
Stack S;
Init(&S);
int i;
for(i=0; str[i]!='\0'; i++){
Push(&S, str[i]);
}
for(i=0; !IsEmpty(&S); i++){
str[i] = Pop(&S);
}
str[i] = '\0';
}
//测试 main 函数
int main(){
char str[MAX_SIZE];
printf("请输入一个字符串:");
scanf("%s", str);
Reverse(str);
printf("逆序输出结果为:%s", str);
return 0;
}
```
阅读全文