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