第二次个人作业2
拓展功能
近期考试扎堆,导致学习编程的时间实在有限,加上非科班编程的基础薄弱,实际想法是有,最大的问题核心其实还是代码敲得不够多。
对于本次拓展,想到的一个功能是:英文相同,数字不同的视为相同单词。
先做一个简单的分析,其实Wordcount的工作其实主要步骤是:
文件输入——读取文件——提取单词——统计单词频率——对单词及词频进行排列——文件输出
加上拓展功能后,则是在此过程中处理字母相同数字不同的两种情况。
对于我来说,如何记录词频和处理两种不同的情况是难点。从同学的思路中,我学习了一种很好的办法来解决这些难点。
创建两个map。一个储存单词与词频,另一个储存统一格式的单词和其对应的各种单词,取ascII最小的保留。
这样操作的话,可以实现记录词频,又能够保证输出的词频符合要求,最后只要将两个map整理到一起排序输出便可。
经过了和同学的讨论,得到了这段将数字结尾的单词提取出来并归类的代码,实现了扩展功能的添加。
string function_exended(string headword){ if(headword.begin()==headword.end()) return headword; while(1){ if(isdigit(*(headword.end()-1))){ headword.erase(headword.end()-1); } else break; } return headword; }
浙公网安备 33010602011771号