
对读入.txt中,拆出英文单词,输出顺序排列的单词表 ,输出output.txt中,一个一行,单词后后为出现个数 100
对读入的某个文本文件input.txt中,拆出英文单词,输出一个按字典顺序排列的单词表,结果输出在文本文件output.txt中,每个单词一行,并在单词后输出该单词出现的...
对读入的某个文本文件input.txt中,拆出英文单词,输出一个按字典顺序排列的单词表
,结果输出在文本文件output.txt中,每个单词一行,并在单词后输出该单词出现的个数
,两个字段之间用逗号分隔。约定单词仅由英文字母组成,单词间由非英文字母分隔,
相同单词只输出一个,大小写不区分。
例如文本文件input.txt为:
i am a boy.
she is a girl.
则输出文本文件output.txt为:
a,2
boy,1
girl,1
i,1
she,1
使用linux下的gcc编译环境 展开
,结果输出在文本文件output.txt中,每个单词一行,并在单词后输出该单词出现的个数
,两个字段之间用逗号分隔。约定单词仅由英文字母组成,单词间由非英文字母分隔,
相同单词只输出一个,大小写不区分。
例如文本文件input.txt为:
i am a boy.
she is a girl.
则输出文本文件output.txt为:
a,2
boy,1
girl,1
i,1
she,1
使用linux下的gcc编译环境 展开
1个回答
展开全部
#include <iostream>
#include <map>
#include <string>
#include <sstream>
using namespace std;
int main()
{
string input_s = "i am a boy.\n
she is a girl.";
string word;
map<string,int> freq;
string s;
while(getline(input_s,s))
{
for ( std::string::iterator it=s.begin(); it!=s.end(); ++it)
{
if(*it == ' ')
{
if(freq.find(word) == freq.end()) //First time the word is seen
{
freq[word] = 1;
}
else //The word has been seen before
{
freq[word]++;
}
word = "";
}
else
{
word.push_back(*it);
}
}
}
for (std::map<string,int>::iterator it=freq.begin(); it!=freq.end(); ++it)
std::cout << it->first << " => " << it->second << '\n';
}
#include <map>
#include <string>
#include <sstream>
using namespace std;
int main()
{
string input_s = "i am a boy.\n
she is a girl.";
string word;
map<string,int> freq;
string s;
while(getline(input_s,s))
{
for ( std::string::iterator it=s.begin(); it!=s.end(); ++it)
{
if(*it == ' ')
{
if(freq.find(word) == freq.end()) //First time the word is seen
{
freq[word] = 1;
}
else //The word has been seen before
{
freq[word]++;
}
word = "";
}
else
{
word.push_back(*it);
}
}
}
for (std::map<string,int>::iterator it=freq.begin(); it!=freq.end(); ++it)
std::cout << it->first << " => " << it->second << '\n';
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询