对读入的某个文本文件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编译环境
对读入.txt中,拆出英文单词,输出顺序排列的单词表 ,输出output.txt中,一个一行,单词后后为出现个数
答案:2 悬赏:30 手机版
解决时间 2021-02-07 21:15
- 提问者网友:情歌越听越心酸
- 2021-02-07 16:25
最佳答案
- 五星知识达人网友:迟山
- 2021-02-07 17:52
我这儿有,要的话发邮箱。
全部回答
- 1楼网友:迟山
- 2021-02-07 18:34
#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';
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯