Simone打算写一个功能强大的文本编辑器,并取一个炫酷拉风,高端优雅的名字,比如“simone牌文本编辑器”之类的。既然功能强大,那肯定得有个查找功能吧。但是她在完成这个功能的时候遇到一点小问题。现在来请求你的帮助。
给你一个文本串s,和一个模式串k,你需要写一个程序来查找k在s中出现了多少次。
输入
输入文件的第一行是一个正整数T,表示总共有T组测试数据。
接下来有T组测试,每组测试数据包括两行。第一行是文本串s,长度不大于10000。第二行是模式串k,长度不大于10。都是只有小写字母组成的字符串
接下来有T组测试,每组测试数据包括两行。第一行是文本串s,长度不大于10000。第二行是模式串k,长度不大于10。都是只有小写字母组成的字符串
输出
每组测试对应输出一个正整数答案,表示k在s中出现了多少次。
样例输入
2 abababa aba abcabc abc
样例输出
3 2
#include<iostream> #include<cstring> #include<cstdio> using namespace std; char s1[10030],s2[20]; int main() { int n,i,j,m1,m2,ans,flag; cin>>n; while(n--) { ans=0; memset(s1,0,sizeof(s1)); memset(s2,0,sizeof(s2)); scanf("%s",s1); scanf("%s",s2); m1=strlen(s1); m2=strlen(s2); for(i=0;i<m1;i++) { flag=0; if(s1[i]==s2[0]) { for(j=0;j<m2;j++) { if(s1[i+j]!=s2[j]) { flag=1; break; } else flag=2; } } if(flag==2) ans++; } cout<<ans<<endl; } return 0; }