原始代码:

	int s;
s = ch;
switch (s)
{
case 'a':letter[0]++; break;
case 'b':letter[1]++; break;
case 'c':letter[2]++; break;
case 'd':letter[3]++; break;
case 'e':letter[4]++; break;
case 'f':letter[5]++; break;
case 'g':letter[6]++; break;
case 'h':letter[7]++; break;
case 'i':letter[8]++; break;
case 'j':letter[9]++; break;
case 'k':letter[10]++; break;
case 'l':letter[11]++; break;
case 'm':letter[12]++; break;
case 'n':letter[13]++; break;
case 'o':letter[14]++; break;
case 'p':letter[15]++; break;
case 'q':letter[16]++; break;
case 'r':letter[17]++; break;
case 's':letter[18]++; break;
case 't':letter[19]++; break;
case 'u':letter[20]++; break;
case 'v':letter[21]++; break;
case 'w':letter[22]++; break;
case 'x':letter[23]++; break;
case 'y':letter[24]++; break;
case 'z':letter[25]++; break;
case 'A':letter[0]++; break;
case 'B':letter[1]++; break;
case 'C':letter[2]++; break;
case 'D':letter[3]++; break;
case 'E':letter[4]++; break;
case 'F':letter[5]++; break;
case 'G':letter[6]++; break;
case 'H':letter[7]++; break;
case 'I':letter[8]++; break;
case 'J':letter[9]++; break;
case 'K':letter[10]++; break;
case 'L':letter[11]++; break;
case 'M':letter[12]++; break;
case 'N':letter[13]++; break;
case 'O':letter[14]++; break;
case 'P':letter[15]++; break;
case 'Q':letter[16]++; break;
case 'R':letter[17]++; break;
case 'S':letter[18]++; break;
case 'T':letter[19]++; break;
case 'U':letter[20]++; break;
case 'V':letter[21]++; break;
case 'W':letter[22]++; break;
case 'X':letter[23]++; break;
case 'Y':letter[24]++; break;
case 'Z':letter[25]++; break;
}

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

以下是更改后的代码:

int j;
char i;
for (i = 'a', j = 0; i <= 'z'; i++, j++)
{
if (ch == i)
{
letter[j]++;
break;
}
}
for (i = 'A', j = 0; i <= 'z'; i++, j++)
{
if (ch == i)
{
letter[j]++;
break;
}
}

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

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

char filename[50];

长度改为50。

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

void Sort(char ch)
{
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
{
chnum++;
return;
}
else
signum++;
}

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. Matplotlib:plt.text()给图形添加数据标签

    1.数据可视化呈现的最基础图形就是:柱状图.水平条形图.折线图等等: 在python的matplotlib库中分别可用bar.barh.plot函数来构建它们,再使用xticks与yticks(设置坐 ...

  2. Linux下Sublime Text 3的安装

    1.下载 官网下载 或者直接 #wget http://c758482.r82.cf2.rackcdn.com/sublime_text_3_build_3059_x32.tar.bz2 (linux ...

  3. vue_02 开发过程中的问题记载

    1.package.json 运行 npm start 执行的是npm run  dev 实际上执行的是“dev” : node build/dev-server.js这一条 跑的是build目录下d ...

  4. python第五十课——多态性

    animal.py class Animal: def __init__(self,name): self.name = name def eat(self): pass dog.py from an ...

  5. android Application Component研究之Activity(一)

    http://blog.csdn.net/windskier/article/details/7096521 终于下定决心写写ActivityManagerService的源码分析的文章了,Activ ...

  6. 原生JS添加类名 删除类名

    为 <div> 元素添加 class: document.getElementById("myDIV").classList.add("mystyle&quo ...

  7. 详解PHP操作Memcache缓存技术提高响应速度的方法

    本文转载http://blog.csdn.net/zhihua_w  不错的博客,仅供本人学习之用 一般来说,如果并发量不大的情况,使不使用缓存技术并没有什么影响,但如果高并发的情况,使用缓存技术就显 ...

  8. 图像跟踪(1) CSK

    依赖OPENCV 1功能 鼠标选取目标  S按键取消重新选择 共享内存目标框 中心 X Y 边框W H //////////////////////////////////////////////// ...

  9. 华为交换机常用命令(以s5700-SI为例)

    交换机的三种模式: Access模式: 一般用来连接计算机与交换机. 此模式下有一个PVID就是本端口所属的VLAN号,如果从链路上收到无标签的帧,则打上默认VLAN号,然后发给其他端口,如果从链路上 ...

  10. spring,springmvc,mybatis整合ssm框架出现ORA-02289:序列不存在问题

    今天整合了一个SSM项目,完了后部署到Tomcat服务器,正常启动.但是当我发送请求时,报错,,如下 报错说序列不存在,可是我明明创建了序列呀,然后我测试了一下,测试语句:select tb_user ...