开发工具:VC++6.0
开发语言:c++
源代码上传至github:https://github.com/jitianmeng/-
1. 要求:实现一个控制台程序,给定一段英文字符串,统计其中各个英文单词(4字符以上含4字符)的出现频率。
输出要求:按照频率降序输出单词及频率,相同频率则按字母顺序输出。
附加要求:读入一段文本文件,统计该文本文件中单词的频率,并上面要求输出统计结果。
思路:1.首先定义一个结构体,这样访问字符数组就很方面
2.判断是否是一个单词
3.要将字符串中的大写转成小写,可以用+32来转换
4.开始计数,如果单词出现过,就计数
在完成这项作业前,我以为三个小时就能搞定,后来发现很多难点,比如,如何大小写转换,如何将一长串字符串分割成一个个单词,如何显示一个单词,等等,这使得我花了大概五六个小时,才差不多完成这个任务。
难点: 1.大小写的转换:一开始没什么思路,后来百度了很多,才知道是要利用ascii码来转换。。大概花了20分钟。
2.也是最让我头疼的一个,以前一直只会统计字母个数,单词个数不会。后来上网百度了很多,才知道有个专门的函数strtok()利用分隔符来分割字符串的。大概花了有一个小时
3.统计单词个数,这个就是用以前c++学的利用cstring里的函数,strcmp来进行单词的比较。虽然一开始想法是有了,但是真正在实践的时候,却有很多小错误,比如指针,变量赋值类型不统一等等。花了有半个小时吧。
心得:在这次任务中,首先我学会了一个strtok()函数,也更加加深了对以前的字符串的了解与应用。其次,我发现了调试的一些小技能。比如有很多错误的时候,可以一步一步来,按步来输出看结果是否正确,再来进行修改。总的来说,这次的作业还是比较难得。特别是用c++写,以后会多学学java等语言。
代码:
结果: