下面程序的功能是统计子串substr在母串str中出现的次数,是课本上的答案,为什么输出不正确呢?


#include<stdio.h>
int count(char*str,char*substr)
{
int i,j,k,num=0;
for(i=0;str[i]!='\0';i++)
for(j=i,k=0;substr[k]==str[j];k++,j++)
if(substr[k+1]=='\0')//这里为什么不可以是[++k]呢?
{num++;break; }
return(num);
} 
int main()
{
char str[80],substr[80];
int n;
gets(str);
gets(substr);
printf("%d\n",count(str,substr));
return 0;
}

咋会输出不正确呢?
if(substr[k+1]=='\0') 这里是判断子串是否结束。