获取单个char并将其传递给C中的函数

时间:2011-04-24 16:52:54

标签: c string stack

我是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]);

2 个答案:

答案 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]);

请参阅the documentation