新手c语言的压栈与弹栈 写了一段代码压入字符串与弹出字符串 始终读不出来 不知道哪里出错了

//这是主函数
#include "stdio.h"
#include "stdlib.h"
#include "stack_array.h"

int main()
{
char *arr[] = {"a","b","c","d","e","f"};
STACK *stack = stack_create(20);

//压栈
while(!stack_full(stack))
{
    stack_pull(stack,*arr);
}

//弹栈
while(stack_emputy(stack))
{
    printf("%s\n",stack_pop(stack));
}
stack_destroy(stack);
return 0;

//这是栈函数
#include "stdio.h"
#include "stdlib.h"
#include "stack_array.h"

STACK *stack_create(int cap)
{

STACK *stack = (STACK*)malloc(sizeof(STACK));
stack->array = (char*)malloc(cap*sizeof(char));
stack->cap = cap;
stack->top = 0;
return stack;

}

void stack_destroy(STACK *stack)
{

free(stack->array);
free(stack);

}

//先判断栈满
int stack_full(STACK *stack)
{

if((stack->top)>=stack->cap)
{
    return 1;
}
else
{
    return 0;
}

}

//判断栈空
int stack_emputy(STACK *stack)
{

if(stack->top == 0)
{
    return 1;
}
else
{
    return 0;
}

}

//进行压栈
void stack_pull(STACK *stack,char *arr)
{

int num = 0;
stack->array[stack->top++] =arr[num];
num++;

}
//弹栈
int stack_pop(STACK *stack)
{

return stack->array[--stack->top];

}

//头文件
#ifndef STACK_ARRAY
#define STACK_ARRAY

typedef struct
{

char *array;
int cap;
int top;

}STACK;

//创建栈

STACK *stack_create(int cap);

//销毁栈

void stack_destroy(STACK *stack);

//压栈

void stack_pull(STACK *stack,char *arr);

//弹栈

int stack_pop(STACK *stack);

//判断栈是否已满

int stack_full(STACK *stack);

//判断栈是否为空

int stack_emputy(STACK *stack);

2个回答

弹栈那应该是非空栈,少了个‘!’

非常感谢 已解决 不知道怎么回复您 只好这样了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

7
正则表达式匹配字符串问题
99
只要回答,都给C币,请问怎么实现javascript对字符串和数字相互转换?
10
是否能用正则实现判断一段字符串中包含某个子串且不包含另一个子串?
3
主界面上通过ajax返回的html字符串,然后怎么进行弹出新页面进行展示这个html
3
javascpt语言怎么对字符串的类型用类型判断?怎么判断字符串属于的类型是什么?
6
C++ CString 求分割字符串高效函数
2
C 怎样将字符串里的值设为变量?
1
给出一段没有标点的文章,找出第n个单词的长度c语言问题,代码哪里错了?困扰半天了求大佬解答
1
C语言字符串的排序问题如何解决?
2
C语言:统计字符串中字符的种类
2
C里如何用substring从后往前截取一段字符串?
3
c语言 这两段代码有什么区别,为什么一段可以字符输入,一段字符输入就退出
1
C语言在字符串A中寻找字符串B的出现次数。
2
我要截取一段字符串,以固定的一个字符截取,应该这么做?
1
C语言求助:输入一个字符串,将其中的字母字符输入一个链表,将其中的数字字符输入另一个链表。
1
查找其中的最大字母,在该字母后面插入字符串“(max)”,C语言编写代码的做法
1
(C语言)输入一个有20个以上字符的字符串,分别统计字符串中字符a和s(只限于小写)的个数,并输出结果。
0
mongodb截取数据库一段字符串并判断是否包含别的字符串怎么写
3
oracle如何截取字段中的一段字符串
1
用C语言如何解决:对于输入的每个字符串,查找其中的最大字母,在该字母后面插入字符串