所以我正在玩链接列表堆栈,我无法弄清楚如何输出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;
}
答案 0 :(得分:0)
printf("%i\n",temp->item);
你可能想要这个,而不是:
printf("%c\n",temp->item);
%i
用于将其输入格式化为十进制整数。 %c
将其格式化为角色。