堆栈链接 - 列表 C

stack linked - list C

所以我一直在玩链表堆栈,但我不知道如何输出 char 而不是 int。令我感到遗憾的是,只获得 ASCII 值(这里是 40 和 97)已经有几个小时了。我真的可以在这里使用一些光线,因为我觉得我缺少一些非常基本的东西。谢谢

#include <stdio.h>
#include <stdlib.h>

typedef struct STACKnode* link;
struct STACKnode { char item; link next; }; 
static link head;

link NEW(char item, link next) 
{ 
link x = malloc(sizeof *x);
x->item = item; 
x->next = next; 
return x; 
}

void STACKinit(int maxN) { head = NULL; }

int STACKempty() { return head == NULL; }

void STACKpush(char item) { head = NEW(item, head); }

char  STACKpop() 
{ 
char item = head->item;  
link t = head->next;
free(head); 
head = t; 
return item; 
}

void STACKprint()
{
  link temp=head; 
while(temp!=NULL)
{
    printf("%i\n",temp->item); 
    temp = temp->next;
}
}

int main(int argc, char *argv[])
{ 
    STACKinit(10);
    STACKpush('a');
    STACKpush('(');
    STACKprint();   
    system("pause");
    return 0;
}   
printf("%i\n",temp->item);

你可能想要这个,而不是:

printf("%c\n",temp->item);

%i 用于将其输入格式化为十进制整数。 %c 将其格式化为字符。