1.枚举字符串,若字符串从第i位开始与子串相同,则继续往下比对;否则继续枚举字符串‘
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
char s[10010]={0};
gets(s);
char ss[10010]={0};
gets(ss);
int len1=strlen(s),len2=strlen(ss);
int i=0,j=0;
int ans=0;
while(i<len1)
{
if(s[i]==ss[j])
{
i++;
j++;
if(ss[j]=='\0'&&s[i]!='\0')
{
j=0;
ans++;
}
}
if(s[i]!=ss[j])
{
j=0;
i++;
}
}
printf("%d",ans);
return 0;
}
2.
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
char a[30]={0},b[30]={0};
int i=0,j=0,n,m,sum=0;
gets(a);
gets(b);
m=strlen(b);
n=strlen(a);
do{
if(a[i]==b[j])
{
if(j==m-1)
{
sum++;
i--;
}
i++;
}
else
{
j--;
i++;
}
j++;
}while(i<n+1);
printf("%d",sum);
return 0;
}