查找文章中单词出现的个数和第一次出现的位置
总结: 五一放假复习感觉比较的枯燥,就来写了一道比较水的题目,但是还是有收获的,对字符串的一些函数有了新的认识。
题目: 题目很简单,就是给出一段文章和一串单词,需要做的事情是输出单词在文章出现的次数和第一次出现的位置。
以前是接触过这种类似的题目的,但是一直有没有对那些题目有比较深刻的印象,都是写过一遍之后就只记得大概的模样,很多细节不下记得很清晰,这次便趁着好好复习一下。 最开始写不是特别的有头绪,但是去翻了翻一些字符串的函数,还是把这道“水题”(不需要啥思维)给码了出来。
常用字符串函数的使用可以看看这位大佬的博客:
字符串函数mainstr.find(substr);返回的是找到的字符串的第一个位置,还可以用mainstr.find(sbustr,mainstr.(substr)+1) 使查找的位置往后移。
ac代码:
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int main()
{
string art,wor;
getline(cin,wor);
getline(cin,art);
for(int i=0;i<art.length();i++)
art[i]=tolower(art[i]);
for(int i=0;i<wor.length();i++)
wor[i]=tolower(wor[i]);
art= +art+ ;
wor= +wor+ ;
if(art.find(wor)==string::npos)
{
cout<<-1<<endl;
}
else
{
int first=art.find(wor);
int s=art.find(wor),cnt=0;
while(s!=string::npos )
{
cnt++;
s=art.find(wor,s+1);
}
cout<<cnt<<" "<<first<<endl;
}
return 0;
}
