加上begin=begin+p.length()后,是将第一个子串跳过然后查找,结果如下,其中T=“111231123”,P=“11”,得到的11出现的次数是2次,但是如果将上面一句代码去掉,得到的是3次。
string T;//原串
string P;//模式
cin>>T>>P;
int count=0;
int begin=-1;
while((begin=T.find(P,begin+1))!=string::npos)
{
count++;
cout<<begin<<" "<<count<<endl;
begin=begin+P.length();
}
不去掉最后一句代码的结果:
去掉最后一句代码的结果