在這段代碼中,我試圖編寫一個函數,如果兩個字符串不匹配,返回0值,如果我能找到一個子字符串那個wholey重複patt。在這裏找不到一個bug ... C代碼
#include....
int check(char *str, char *patt, int *b)
{
if (*str == *patt && *patt != 0)
return *b * (1 + check(str+1,patt+1,&b));
else if (*patt == 0)
return 0;
else{
*b = 0;
return 0;
}
}
main()
{
char s1[SIZE] = "mama";
char s2[SIZE] = "mama";
int b = 1;
printf("%d\n",check(s1,s2,&b));
b = 1;
system ("pause");
return;
}
這裏我應該得到輸出4,但我得到了-77779463。 感謝您的幫助!
PS我使用遞歸併將b參數設置爲changable。
如何在調試器中單步執行? –
你是在做這個只是作爲遞歸的學習練習,還是你對這個問題的解決方案? –
我試過了,但是我不擅長調試。 – brnady