#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
int n=0;
cin>>str>>n;
while(n--)
{
int count=0;
string st;
cin>>st;
for(int i=0;i<str.size()-st.size()+1;i++)
{
if(str[i]==st[0])
{
if(st==str.substr(i,st.size()))
count++;
}
}
cout<<count<<endl;
}
return 0;
}
首先想到就是考虑当在str这个长字符串中找到一个字母能跟字符串的首字母相同,就能继续往后进行判断,在第一个for()循环内,次数在str.size()-st.size()+1次 目的是为了表达在最后不足st长度时就不用再去寻找子字符串,在对于找到str[i]==st[0]时,就可以往后继续判断后续的字母是否满足st的字母,那么就可以用str.substr(i,st.size())函数来进行判断if(st==str(i,st.size()))成立,那么就可以让count++;依次往后判断,其中最主要的就是学会用好str.substr()函数来进行判断两个字符串是否相等,i是从str的下标第i个字母开始,长度为st.size()的单词来进行比较