我是C的新人,有点在这个网站。 我们被要求使用C中的堆栈来平衡符号。我有一个函数push和pop,它分别添加和删除要平衡的符号。每当字符串包含{,(,[或<符号时,它将单个字符串推送到堆栈。否则,它会弹出它。如果在整个过程结束时,堆栈为空,则表示输入的字符串是平衡的
if(string[i] == '(' || string[i] == '{' || string[i] == '[' || string[i] == '<')
push(string[i], s);
else
pop(s);
然而,当我查看它时,终端打印数字而不是按下的符号。这是我的视图功能:
int i;
for(i = 0; i < (s->tos + 1); i++)
printf("%d ", s->arr[i]);
答案 0 :(得分:2)
您想告诉printf打印不是小数的字符
即
printf("%c ", s->arr[i]);
答案 1 :(得分:1)
“%d”格式标志用于整数。这就是你看到整数的原因。
要查看字符,请使用“%c”格式标志,该标志用于字符:
int i;
for (i = 0; i < (s->tos + 1); i++)
printf("%c ", s->arr[i]);