不知道爲什麼這個問題對我來說太難了。迭代地說,這是蛋糕,但一旦堆棧解開,它就會破壞我的整個功能。遞歸查找子串
它找到正確的指針,並且如果找到它,則給函數一個真值。但是,一旦調用堆棧解除,它就會一直恢復爲假。有誰知道如何解決這個問題或者我在做什麼我的代碼錯了?
這裏是我迄今爲止...
bool mySubStr(char * needle, char * haystack)
{
int needleLength = strlen(needle);
int haystackLength = strlen(haystack);
bool found = false;
if(needleLength < haystackLength)
{
if(strncmp(haystack, needle, needleLength) == 0)
{
found = true;
}
else
{
mySubStr(needle, haystack + 1);
}
}
return found;
}
如果您可以具體說明您的預期結果,實際得到的結果以及迄今爲止您瞭解或解決問題所採取的步驟,這將會很有幫助。 – Edward
當我的針=「sip」和haystack =「密西西比」時,我預期的結果是正確的。我實際得到的結果是錯誤的。我採取的解決問題的步驟很多。我甚至不知道從哪裏開始。 – MrPickle5
只需在你的else塊中添加一些代碼:found = mySubStr(needle,haystack + 1); – acegs