原字符串中子字符串的个数,代码在两个平台上测试,一个正确,一个错误

输入一个长度最多为80的字符串s(无空格),和一个字符串s1(长度不超过20,无空格),求字符串s1在字符串s中出现的次数。
输入:abdcdbdabdab
输出:3
代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char s[81],s1[21];
int i,j,n,len1,len2,sum;
gets(s);
gets(s1);
len1=strlen(s);
len2=strlen(s1);
sum=0;
for(i=0;i<=len1-len2;i++)
{
n=i;
for(j=0;j<len2;j++)
{
if(s[n]==s1[j])
n++;
else
break;
}
if(j>=len2)
sum++;
}
printf("%d\n",sum);
return 0;
}
我找不出问题来,谢谢大家了!