string::find()的输入格式string::size_type pos=s.find(s1)//从s中查找是否有s1
如果没有找到返回string::npos
以L1-6 吃火锅 为例
方法一
#include<iostream>
#include<algorithm>
#include<math.h>
#include<string.h>
using namespace std;
int main()
{
string s;
int sum1=0,sum2=0,first=0;
string s1="chi1 huo3 guo1";//这个定义要查找的
while(getline(cin,s))//getline(cin,s) 可以输入空格
{
if(s==".") break;
sum1++;
string::size_type pos=s.find(s1);//这是查找的标准格式
if(pos!=string::npos)//如果没找到返回的是sting::npos
{
sum2++;
if(first==0)
first=sum1;
}
}
printf("%d\n",sum1);
if(sum2==0)
printf("-_-#");
else printf("%d %d",first,sum2);
}
方法二 有学习一个简单好记的
find查找
#include <iostream> #include <string> using namespace std; int main() { string s1, s2="chi1 huo3 guo1"; int sum1=0,sum2=0,sum3=0; while (1) { getline(cin, s1); if(s1==".") break; sum1++; if(s1.find(s2)!=-1)//这个查找没找到返回-1 { sum3++; if(sum3==1) sum2=sum1; } } if(sum2==0) cout<<sum1<<endl<<"-_-#"; else cout << sum1<<endl<<sum2<<" "<<sum3; }