字符串查找函数 find()函数


       find()函数可以帮助你在两个字符串之间,查找很多他们的关系。。。

#include<iostream>
#include<string>
using namespace std;

int main()
{

	string s,s2;
	int n;
	cin>>n;
	while(n--)
	{
		cin>>s>>s2;
		string flag;
        int position = s.find(s2);
       if (position != s.npos) 
	
        cout << "position is : " << position << endl;
 
       else
 
       cout << "Not found the flag" + flag;
	}
	return 0;
}
/查找s2在s中的第一个位置
#include<iostream>
#include<string>
using namespace std;

int main()
{

	string s,s2;
	int n;
	cin>>n;
	while(n--)
	{
		cin>>s>>s2;
	   string	flag = s2;
      int position = s.find_first_of(flag);
      cout << "s.find_first_of(flag) is : " << position << endl;
	}
	return 0;
}
#include<iostream>
#include<string>
using namespace std;

int main()
{

	string s,s2;
	int n,m;
	cin>>n;
	while(n--)
	{
		cin>>s>>s2;
		cin>>m;
		int position=s.find(s2,m);//在s中从第n的位置开始查找第一个s2的位置
        cout<<"s.find(s2,m) is : "<<position<<endl;
	}
	return 0;
}

#include<iostream>
#include<string>
using namespace std;

int main()
{

	string s,s2;
	int n;
	cin>>n;
	while(n--)
	{
		cin>>s>>s2;
	string	flag=s2;
     int   position=0;
      int i=1;
     while( (position=s.find_first_of(flag,position) )!=string::npos )//在s中查找所有s2的位置并依次输出
	 {
         //position=s.find_first_of(flag,position);
         cout<<"position  "<<i<<" : "<<position<<endl;
         position++;
         i++;
	 }
	}
	 return 0;
}
//在s中从最后一位开始查找s2的第一个位置
#include<iostream>
#include<string>
using namespace std;

int main()
{

	string s,s2;
	int n;
	cin>>n;
	while(n--)
	{
		cin>>s>>s2;
		string	flag=s2;
        int   position=0;
        position=s.rfind (flag);
        cout<<"s.rfind (flag) :"<<position<<endl;
	}
	return 0;
}*/

在以上的例子中,我们可以熟练掌握一些题型。

http://acm.nyist.net/JudgeOnline/problem.php?pid=5

代码:

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string s1,s2;
	int n;
	cin>>n;
	while(n--)
	{
		cin>>s1>>s2;
		unsigned int m=s2.find(s1,0);
		int num=0;
		while(m!=string::npos)
		{
			num++;
			m=s2.find(s1,m+1);
		}
		cout<<num<<endl;
	}
	return 0;
}


原文地址:https://www.cnblogs.com/NYNU-ACM/p/4236784.html