给你s1,s2两个字符串,求s1中有多少个s2
#include<stdio.h>
#include<string.h>
int t,len1,len2,pos,ok,ans;
char s1[1000005],s2[15];
int main()
{
scanf("%d",&t);
while(t--)
{
memset(s1,0,sizeof(s1));
memset(s2,0,sizeof(s2));
ok=1;
ans=0;
scanf("%s%s",s1,s2);
len1=strlen(s1);
len2=strlen(s2);
int i=0;
while(i<len1&&ok)
{
//找到s1的i位置开始 s2第一次出现的位置
pos=strstr(s1+i,s2)-s1-i;
if (pos<0) ok=0;
else
{
ans++;
i+=pos+len2;
}
}
printf("%d\n",ans);
}
return 0;
}
【HDU 4150】Powerful Incantation
原文:http://www.cnblogs.com/flipped/p/5196913.html