所以我在玩链表堆栈,我不知道如何输出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("%in",temp->item);
temp = temp->next;
}
}
int main(int argc, char *argv[])
{
STACKinit(10);
STACKpush('a');
STACKpush('(');
STACKprint();
system("pause");
return 0;
}
printf("%in",temp->item);
你可能想要这个,而不是:
printf("%cn",temp->item);
%i
用于将其输入格式化为十进制整数。%c
将其格式化为字符