计蒜客:寻找字符串(C++find()的使用)

//AC代码
#include<string>
#include<iostream>
using namespace std;
int main()
{
	string a,b;
	int count=0,p=0;
	
	getline(cin,a);
	getline(cin,b);
	
	while( (p = a.find(b,p))!= string::npos )
	{
		count++;
		if(b.length() == 1)
		{
			p+=b.length();
		}
		else
		{
			p+=b.length()-1;
		}
	}
	cout<<count;
	return 0;
 } 
/*
   一开始写的用了find_first_of,导致错误
   原因: a.find_first_of(b, off)是在a中偏移off个位置之后
          查找与字符串b中的任意一个字符匹配的第一个位置
          是与b中任意一个字符匹配,而不是整个字符串
*/
#include<string>
#include<iostream>
using namespace std;
int main()
{
	string a,b;
	int count=0,p=0;
	
	getline(cin,a);
	getline(cin,b);
	
	while( (p = a.find_first_of(b,p))!= string::npos )
	{
		count++;
		cout<<"p = "<<p<<endl<<"count = "<<count<<endl;
		p+=b.length();
	}
	cout<<count;
	return 0;
 } 

猜你喜欢

转载自blog.csdn.net/qq_42580577/article/details/86688380