原始代码:

  1. int s;
  2. s = ch;
  3. switch (s)
  4. {
  5. case 'a':letter[0]++; break;
  6. case 'b':letter[1]++; break;
  7. case 'c':letter[2]++; break;
  8. case 'd':letter[3]++; break;
  9. case 'e':letter[4]++; break;
  10. case 'f':letter[5]++; break;
  11. case 'g':letter[6]++; break;
  12. case 'h':letter[7]++; break;
  13. case 'i':letter[8]++; break;
  14. case 'j':letter[9]++; break;
  15. case 'k':letter[10]++; break;
  16. case 'l':letter[11]++; break;
  17. case 'm':letter[12]++; break;
  18. case 'n':letter[13]++; break;
  19. case 'o':letter[14]++; break;
  20. case 'p':letter[15]++; break;
  21. case 'q':letter[16]++; break;
  22. case 'r':letter[17]++; break;
  23. case 's':letter[18]++; break;
  24. case 't':letter[19]++; break;
  25. case 'u':letter[20]++; break;
  26. case 'v':letter[21]++; break;
  27. case 'w':letter[22]++; break;
  28. case 'x':letter[23]++; break;
  29. case 'y':letter[24]++; break;
  30. case 'z':letter[25]++; break;
  31. case 'A':letter[0]++; break;
  32. case 'B':letter[1]++; break;
  33. case 'C':letter[2]++; break;
  34. case 'D':letter[3]++; break;
  35. case 'E':letter[4]++; break;
  36. case 'F':letter[5]++; break;
  37. case 'G':letter[6]++; break;
  38. case 'H':letter[7]++; break;
  39. case 'I':letter[8]++; break;
  40. case 'J':letter[9]++; break;
  41. case 'K':letter[10]++; break;
  42. case 'L':letter[11]++; break;
  43. case 'M':letter[12]++; break;
  44. case 'N':letter[13]++; break;
  45. case 'O':letter[14]++; break;
  46. case 'P':letter[15]++; break;
  47. case 'Q':letter[16]++; break;
  48. case 'R':letter[17]++; break;
  49. case 'S':letter[18]++; break;
  50. case 'T':letter[19]++; break;
  51. case 'U':letter[20]++; break;
  52. case 'V':letter[21]++; break;
  53. case 'W':letter[22]++; break;
  54. case 'X':letter[23]++; break;
  55. case 'Y':letter[24]++; break;
  56. case 'Z':letter[25]++; break;
  57. }

开始写时,也觉得这样的表述不够简洁。但由于当时写了好长时间的代码,思路也不是很清晰,就用这种相对来说比较笨的方法。事后也忘记来修改更新这一部分。

以下是更改后的代码:

  1. int j;
  2. char i;
  3. for (i = 'a', j = 0; i <= 'z'; i++, j++)
  4. {
  5. if (ch == i)
  6. {
  7. letter[j]++;
  8. break;
  9. }
  10. }
  11. for (i = 'A', j = 0; i <= 'z'; i++, j++)
  12. {
  13. if (ch == i)
  14. {
  15. letter[j]++;
  16. break;
  17. }
  18. }

使用的是ASCILL码来控制。char型变量i从a开始一直加到z,用来比较字符是否相等。int型变量j从0开始,用来控制对应的数组下标。

文件输入的路径可能会很长,而我之间数组大小设为20,这是远远不够的,我也对此做出了修改

  1. char filename[50];

长度改为50。

新增加模块:字符的分类统计,把字母和符号分开来统计计数。新增函数void Sort(char ch);代码如下:

  1. void Sort(char ch)
  2. {
  3. if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
  4. {
  5. chnum++;
  6. return;
  7. }
  8. else
  9. signum++;
  10. }

chnum用来记录字母的数量,signum用来记录符号的数量。初值都为0。

以上就是我对wordcount的修改,其中还是存在很多的不足,希望大家多提宝贵意见。特别要感谢邹欣老师阅读我的博客,并且提出宝贵的意见。让我能使我的程序更加优化。

对wordcount单词字母部分的修改的更多相关文章

  1. hadoop笔记之MapReduce的应用案例(WordCount单词计数)

    MapReduce的应用案例(WordCount单词计数) MapReduce的应用案例(WordCount单词计数) 1. WordCount单词计数 作用: 计算文件中出现每个单词的频数 输入结果 ...

  2. Eclipse上运行第一个Hadoop实例 - WordCount(单词统计程序)

    需求 计算出文件中每个单词的频数.要求输出结果按照单词的字母顺序进行排序.每个单词和其频数占一行,单词和频数之间有间隔. 比如,输入两个文件,其一内容如下: hello world hello had ...

  3. 第六篇:Eclipse上运行第一个Hadoop实例 - WordCount(单词统计程序)

    需求 计算出文件中每个单词的频数.要求输出结果按照单词的字母顺序进行排序.每个单词和其频数占一行,单词和频数之间有间隔. 比如,输入两个文件,其一内容如下: hello world hello had ...

  4. Hadoop WordCount单词计数原理

    计算文件中出现每个单词的频数 输入结果按照字母顺序进行排序 编写WordCount.java 包含Mapper类和Reducer类 编译WordCount.java javac -classpath ...

  5. Python 单词字母顺序不变且所有倒排

    翻出google測试project师的一道题目: 设计一个函数,不论什么语言都能够,实现下面功能: 一个句子,将句子中的单词所有倒排过来,但单词的字母顺序不变.eg.  this is a real ...

  6. Spark本地环境实现wordCount单词计数

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6814778610788860424/ 编写类似MapReduce的案例-单词统计WordCount 要统计的文件为 ...

  7. hive学习之WordCount单词统计

    看hive目录下就可以了,程序在hdfs里创建一个hive的大文件夹,相当于数据库吧.上面就是一个完整的利用hive来做单词统计,其中的优劣也能看出一点.

  8. eclipse批量替换,修改变量名或单词(两种方法)

    第一种(常用): ①如图:双击选中变量名id,右键选择Refactor中的Rename ②之后如下图所示,红箭头的带有方框的就是选中修改的变量名,此时修改提示框的内容,后面带方框的也跟着修改, 而蓝色 ...

  9. NLP之TextLSTM(预测单词下一个字母)

    LSTM 目录 LSTM 1.理论 1.1 LSTM与RNN 1.1.1 RNN的缺点 1.1.2 LSTM 1.2 LSTM基本结构 2.实验 2.1 实验步骤 2.2 算法模型 1.理论 1.1 ...

随机推荐

  1. logstash启动失败的问题追查

    在实验中logstash是作为日志过滤器的作用,日志收集使用的则是filebeat组件.redis作为缓存器,logstash从redis中拉取数据进行过滤并传给elasticsearch组件. 但是 ...

  2. Windows Server 2012 RS 配置IIS8.0+发布网站

    一.配置iis 8.0 IIS 8.0 是 windows server 2012 自带的服务器管理系统.相比之前版本,IIS 8.0 安装和操作都更加简单,界面也很简洁,安装也很迅速. 1. 进入w ...

  3. creo5.0安装教程(图文详解)

    PTC公司最近发布了Creo 5.0正式版 ,作为最具其革命性的新一代产品设计软件,其所提供专业的二维和三维设计设计,能帮助企业和公司进行产品生命周期管理(PLM)和制定服务管理解决方案.Creo5. ...

  4. 【项目 · WonderLand】 系 统 设 计

    团 队 作 业 ---- 系 统 设 计 Part 0 · 简 要 目 录 Part 1 · 完 善 需 求 规 格 说 明 书 Part 2 · 团 队 编 码 规 范 Part 3 · 数 据 库 ...

  5. java 封装及this 用法

    封装:主要用于将类中的成员名(类变量)通过 private关键字进行访问权限的设定,使用 private后,成员变量只能在当前类中进行访问,超过该类时访问提示不存在,当然也可以用于方法中,但较少.如果 ...

  6. kafka管理器之kafka-manager

    功能 为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫做Kafka管理器的基于Web工具,叫做 Kafka Manager.这个管理工具可以很容易地发现分布在集群中的哪些to ...

  7. Navicat 连接Oracle时提示oracle library is not loaded的问题解决

    笔者使用的Navicat Premium 12启动界面截屏: 请注意是64位的.笔者win7 64位系统. 连接Oracle时提示“oracle library is not loaded”. 解决方 ...

  8. WPF之托盘图标的设定

    首先需要在项目中引用System.Windows.Forms,System.Drawing; using System; using System.Collections.Generic; using ...

  9. Codeforces Round #245 (Div. 2)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/yew1eb/article/details/25609981 A Points and Segmen ...

  10. centos7下安装docker(7docker base command 命令词典)

    上一章中我总结了学习docker 镜像时所用过的命令,今天先来将docker base command 记录一下,参考:https://docs.docker.com/edge/engine/refe ...