蓝桥杯备考-----》模拟,统计单词
·

题目的意思是给定一个单词,找到这个单词在题目中出现的位置和出现次数,我们输入文章的时候,只用cin的话不能全部输入,我们必须要用getline,但是,我们输入完最开始的单词之后后面有个换行符,我们需要先把它读走
那如何找出现的位置呢?我们直接用find显然不太合适,因为有可能要查找的单词包含在某一个大单词里面,我们可以对之前的字符串进行预处理,我们要查找的是空格单词空格,我们把文章首尾都加上空格,把要查找的单词也变成空格+单词+空格,这样我们再查找的时候就是正确的了
好的,话不多说我们来做一下吧
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
string s;cin >> s;
char c = getchar();
string t;
getline(cin,t);
s=' '+ s+' ';
t = ' ' + t + ' ';
int f;
int pos = 0;
for(int i = 0;i<s.size();i++)
{
s[i] = tolower(s[i]);
}
for(int i = 0;i<t.size();i++)
{
t[i] = tolower(t[i]);
}
if(t.find(s)!=-1)
{
f = t.find(s);
pos = f+1;
}
else{
cout << "-1" << endl;
return 0;
}
int cnt = 1;
while(t.find(s,pos)!=-1)
{
pos=t.find(s,pos);
cnt++;
pos++;
}
cout << cnt << " " << f << endl;
return 0;
}
更多推荐
所有评论(0)