鍍金池/ 問答/Android  網(wǎng)絡(luò)安全/ K&R的書上第四章的strindex函數(shù)中,最后一個k>0判斷有什

K&R的書上第四章的strindex函數(shù)中,最后一個k>0判斷有什么意義?

K&R的書上第四章的strindex函數(shù),作用是計算目標字符串中第一次出現(xiàn)字典字符串完整內(nèi)容的位置

//s為目標字符串,t為字典
int strindex(char s[], char t[])
{
    int i, j, k;

    for (i = 0; s[i] != '\0'; i++) {
        for (j = i, k = 0; s[j] == t[k]; j++, k++)
            ;
        if (k > 0 && t[k] == '\0') //就是這里的這個k>0的判斷
            return i;//找到符合的內(nèi)容,返回位置
    }

    return -1;//-1表示未找到指定內(nèi)容
}

就是if(k > 0 && t[k] == '\0')中的這個k > 0,按道理說只要t[]不為空,當t[k]'\0'時,k肯定是大于0的吧?那么這里的這個判斷還有什么意義呢?

回答
編輯回答
尐飯團

我對算法不熟悉,如果有什么常識性錯誤請指正。
看了一下,這是找子串嗎?
可能是想在 j == i, k = 0 時,s[j] != t[k] 這種情況下,不去檢查 t[k]的值,避免只在遍歷到串尾時才退出循環(huán)。

2017年1月3日 07:36