#include<bits/stdc++.h>
using namespace std;
int main()
{
string a,sentence;
map<int, string> b;
int i,j,cnt=0,k=0;
char c;
//cin>>a;
getline(cin, a);
for(i=0;i<a.size();i++)
{
if(a[i]>=65&&a[i]<=90)
a[i]+=32;
}
#if 1
i=0;
while((cin>>b[i]).get(c))
{
for(j=0;j<b[i].length();j++)
{
if(b[i][j]>=65&&b[i][j]<=90)
b[i][j]+=32;
}
i++;
if(c=='\n')
break;
}
#else
getline(cin, sentence);
i=1;
for(j=0; j<sentence.length(); j++)
{
if(sentence[j]>=65&&sentence[j]<=90)
{
sentence[j] += 32;
}
if(sentence[j] == ' ')
{
i++;
continue;
}
b[i-1] += sentence[j];
}
#endif
int pos = 0;
for(j=0;j<i;j++)
{
if(a==b[j])
{
cnt++;
if(cnt==1)
{
k = pos;
}
}
pos += b[j].length() +1;
}
if(cnt>=1)
cout<<cnt<<' '<<k;
else
cout<<"-1";
return 0;
}
cin无法通过,getline ok
题目网址:
描述
一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。
现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例1),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2)。
输入
2 行。
第 1 行为一个字符串,其中只含字母,表示给定单词;
第 2 行为一个字符串,其中只可能包含字母和空格,表示给定的文章。
输出
只有一行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置(即在文章中第一次出现时,单词首字母在文章中的位置,位置从0开始);如果单词在文章中没有出现,则直接输出一个整数-1。
本文介绍了一个用于统计指定单词在文本中出现次数及首次位置的C++程序。程序实现了大小写不敏感的完全匹配,并能处理包含空格的输入。
841

被折叠的 条评论
为什么被折叠?



