查找文章中单词出现的个数和第一次出现的位置

总结: 五一放假复习感觉比较的枯燥,就来写了一道比较水的题目,但是还是有收获的,对字符串的一些函数有了新的认识。

题目: 题目很简单,就是给出一段文章和一串单词,需要做的事情是输出单词在文章出现的次数和第一次出现的位置。

以前是接触过这种类似的题目的,但是一直有没有对那些题目有比较深刻的印象,都是写过一遍之后就只记得大概的模样,很多细节不下记得很清晰,这次便趁着好好复习一下。 最开始写不是特别的有头绪,但是去翻了翻一些字符串的函数,还是把这道“水题”(不需要啥思维)给码了出来。

常用字符串函数的使用可以看看这位大佬的博客:

字符串函数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;
}
经验分享 程序员 微信小程序 职场和发展