我的程序完全比較了兩個字符串,並且在n個字符到達後不會停止?爲什麼會發生?strncmp函數不會停止檢查n個字符?
int strncompare (const char* mystring1,const char* mystring2, int number)
{
int z;
z = number - 1;
while ((*mystring1==*mystring2) && (*mystring1 != '\0') && (*mystring2 != '\0'))
{
*mystring1++;
*mystring2++;
if ((*mystring1 == mystring1[z]) && (*mystring2 == mystring2[z]))
{
break;
}
}
return (mystring1++ - mystring2++);
}
因爲你,當你比較'number'字符不停止?另外你爲什麼要做'* mystring1 ++;'?你不需要'*'。在繼續之前,請閱讀一本好的C++書。 – 2012-02-14 22:36:23
與您的問題沒有直接關係,但您認爲'* mystring1 ++;'和'* mystring2 ++;'做了什麼?我猜這不是他們實際做的。 – hvd 2012-02-14 22:36:34
@SethCarnegie的'如果((* mystring1 == mystring1 [Z])&&(* mystring2 == mystring2 [Z]))'應該檢查的是,但是檢查結果是錯在其邏輯和它的實現。 – hvd 2012-02-14 22:37:46