字符串模式匹配中的循环遍历判定条件为什么不能通过判定指针是否到字符串尾判定遍历是否结束?

比如下面的kmp算法,其中字符串的首元是字符串的长度,那么圈中的判定条件为什么不能是(S[i] != '\0' && P[j] != '\0')?还有求next数组的时候,判定条件也是判定指针是否超过字符串长度,而不是判定是否到达字符串尾。这是为什么呢?

img

img

SString不是以’\0‘为结尾

你可以看下我博客中的KMP算法,优化方案也有,希望对你有用