1953: #103. 子串查找
Time Limit: 5 Sec Memory Limit: 256 MB
Description
这是一道模板题。
给定一个字符串 A 和一个字符串 B,求 B 在 A 中的出现次数。
A 中不同位置出现的 B 可重叠。
Input
输入共两行,分别是字符串 A 和字符串 B。
Output
输出一个整数,表示 B 在 A 中的出现次数。
Sample Input
zyzyzyz
zyz
Sample Output
3
HINT
1≤A,B 的长度 ≤106 ,A 、B 仅包含大小写字母。
Source
代码~(和zcmu 4922用指针方法类似):
#include <stdio.h>
#include <string.h>
#define L 1000002
char str1[L],str2[L];
int strstracount(char *str1,char *str2)
{
char *p = str1;
int num = 0;
while((p=strstr(p,str2))!=NULL)
{
num++;
p++;
}
return num;
}
int main()
{
scanf("%s%s",str1,str2);
printf("%d\n",strstracount(str1,str2));
return 0;
}