查找子字符串出现的次数,有个bug
/*程序功能找出一 字符串中包含某字字符串的次数如:abcabcabcffabc
那么abc在母字符串中的次数就是4
程序有点bug就是测试数据为ddddddfabcabcdd时,dd在母字符串中次数应该是4结果却为6
请教高手解答*/
#include<stdio.h>
#include<string.h>
#define MAX 100
int main(void)
{
char *sourse,*dst;
char a[MAX],b[MAX];
int dstlen=0,flag=0,time=0,tmp;
sourse=a;
dst=b;
printf("Input the sourse string\n");
gets(sourse);
printf("Input the dst string\n");
gets(dst);
dstlen=strlen(dst);
dst=b;
if(dstlen==1)
{
while(*sourse!='\0')
{
if(*sourse==b[0])
time++;
sourse++;
}
printf("In it %d times",time);
return 0;
}
tmp=dstlen;
while(*sourse!='\0')
{
flag=0;
if(*sourse==*dst)/*得到第一个相等的字符*/
{
dst++;
flag=1;
}
if(*dst=='\0') /*如果字串结束则进行下一次测试*/
{
time++;
dst=b;
continue;
}
sourse++;
if(flag) /*如果第一个字符相等则判断字串的第二个字符跟母串接下来的字符是否相等*/
if(*dst!=*sourse)
{
flag=0;
dst=b;
}
}
printf("In it %d times\n",time);
return 0;
}