1
我正在做一个小程序,它将使用一个用动态数组实现的堆栈来检查一个短语是否有平衡的括号和括号。到目前为止,我只是尝试将一个短语传递给isBalanced函数,并尝试逐个打印每个字符。当程序到达:指针/函数参数问题?
printf("%s\n", nextChar(s));
我得到一个分段错误和有关传递类型char和期望类型int.Any帮助警告是非常赞赏。
char nextChar(char* s)
{
static int i = -1;
char c;
++i;
c = *(s+i);
if (c == '\0')
return '\0';
else
return c;
}
int isBalanced(char* s)
{
while(nextChar(s) != 0){
printf("%s\n", nextChar(s));
}
return 0;
}
int main(int argc, char* argv[])
{
char* s=argv[1];
int res;
res = isBalanced(s);
return 0;
}
你***真的真的真的***需要阅读的printf'手动()'尝试使用它之前。错误是显而易见的。 – 2013-04-20 10:36:58
nextChar(s)返回char,而不是char *。 %s需要char *。 – BLUEPIXY 2013-04-20 10:39:02
printf(“%c \ n”,nextChar(s));这将工作 – 2013-04-20 10:39:25