题目内容
对读入的某个文本文件input.txt中,拆出英文单词,输出一个按字典顺序排列的单词表,结果输出在文本文件output.txt中,每个单词一行,并在单词后输出该单词出现的个数,两个字段之间用逗号分隔。约定单词仅由英文字母组成,单词间由非英文字母分隔,相同单词只输出一个,大小写不区分。
例如文本文件input.txt为:
Hello world.
Hello every one.
Let us go.
则输出文本文件output.txt为:
every,1
go,1
hello,2
let,1
one,1
us,1
world,1
试编一个完整的程序完成该功能。
思路:
使用单链表
打开文件,获取输入流,获取字符,判断是否为字母,如果是,就写进临时数组,知直到读到非字母,此刻为一个单词结束,把单词全部转换成小写,创建节点,并初始化,把临时数组内容写进节点成员,并添加进链表,之后对临时数组进行初始化并读取下个单词。
每读完一次单词都进行判断,遍历链表,使用strcmp对比每个单词,按字典顺序,如果排在前面,就把节点添加在当前节点前,不然就遍历链表直到为空,添加在链表尾。如遇相同,数量值加1