关于C语言的问题。

怎么用c语言,编写一段程序实现:从一段英文文章中统计出所有出现的单词数量,并按字母顺序显示出来。有没有那位大虾给写点代码?小弟是个菜鸟刚接触程序,向参考一下。... 怎么用c语言,编写一段程序实现:
从一段英文文章中统计出所有出现的单词数量,并按字母顺序显示出来。
有没有那位大虾给写点代码?
小弟是个菜鸟刚接触程序,向参考一下。
展开
 我来答
百度网友f3ea6ed
2006-01-20 · TA获得超过1751个赞
知道小有建树答主
回答量:997
采纳率:0%
帮助的人:966万
展开全部
我觉得应该这样:扫描文章,构造单词表(单词表有单词和单词出现次数组成);
扫描文章时,读到空格,将前面的单词记下,同时查找单词表,如果此时单词表中已经有了这个单词,将该单词的出现次数加一,如果单词表中没有此单词,向单词表中加入这个单词,.
按字母顺序打印出单词表
我用C++写的,给你一个参考,你的文本文件要与这个程序放在一块,然后在命令行下输入完整的文件名,如:Word.txt
#include <iostream.h>
#include <stdio.h>
#include <string>
#include <map>
using namespace std;

void ReadFromFile()
{
/* this function aimed to read words
from a given file
*/
char sFileName[100];
string sWord;
char ch;
map<string,int> mWordMap;
cout<<"please Enter file name:"<<endl;
bool bContact = false;
/*please make sure that the file is the
same directory with the exe program
*/
cin>>sFileName;
FILE *p = fopen(sFileName,"r");
if(p == NULL)
{
cout<<"cannot open the file "<<sFileName<<endl;
return;
}
while(!feof(p))//not the end of the file
//do the following
{
ch = fgetc(p);

if((ch>='a'&&ch<='z')||
(ch>='A'&&ch<='Z'))
{
sWord += ch;
}
else if(ch == '-')
//contact signal
{
bContact = true;
continue;
}
else
{
if(bContact)
{
bContact = false;
continue;
}
mWordMap[sWord]++;
sWord = "";
}

}
int iTotal = 0;// the totle number of the words in the file
typedef map<string,int>::const_iterator CI;
for(CI pm = mWordMap.begin();pm!=mWordMap.end();++pm)
{
iTotal += pm->second;
cout<<(pm->first).data()<<" appear : "<<pm->second<<" times "<<endl;
}
cout<<"there are "<<iTotal<<" words in this file ."<<endl;

}

void main()
{
ReadFromFile();
}

C++中的map有这个功能,就是我上面说的如果有这个单词,就加一,没有则创建,输出是按照先大写后小写的顺序,大小写相同的情况下从a -- z的顺序输出.
genghui6
2006-01-20
知道答主
回答量:17
采纳率:0%
帮助的人:0
展开全部
本程序有两个算法,一个是计算单词的个数,即是求空格的个数加一,第二个算法是比较各个字母的大小,按顺序输出。程序不是很难。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dragonlaw
2006-01-23 · TA获得超过275个赞
知道小有建树答主
回答量:253
采纳率:0%
帮助的人:93.6万
展开全部
郁闷,这个问题不是有人解过了吗?参考书上多得是呀。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式