原始代码:

	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. git撤销本地提交但未push的记录

    ### git撤销本地提交但未push的记录 前言:有时候本地执行commit命令或者cherry-pick命令后发现提交了不需要提交的东西,就需要把已提交的commit记录撤销下来,简单做下记录 撤 ...

  2. Centos7下gogs数据配置迁移

    工作需要把测试版的gogs迁移到正式版gogs,顺便记下笔记防止以后需要忘记了 环境: centos7测试版gogs:192.168.1.63 centos7正式版gogs:192.168.0.100 ...

  3. python--继承关系

    如果子类中定义与父类同名的方法或属性,则自动会覆盖父类对应的方法或属性. 子类完全继承父类的实例 >>> class Parent: def setName(self): print ...

  4. ELK-elasticsearch-6.3.2部署

    参考博客:linux下ElasticSearch.6.2.2集群安装与head.Kibana.X-Pack..插件的配置安装 参考博客:ELK5.5.1 插件安装实践纪要(head/bigdesk/k ...

  5. 真机测试以及appstore发布流程

    一.添加真机测试流程:http://jingyan.baidu.com/article/48b558e33b96a27f38c09aa4.html 二.app发布流程:http://jingyan.b ...

  6. Python getting started guide

    Get up in the morning. The first thing is to write a blog, although it uses machine translation, it ...

  7. Intent加强

    Intent是一种运行时绑定(runtime binding)机制,它能在程序运行的过程中连接两个不同的组件.通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意 ...

  8. cenos下安装MySQL最新版(5.7.18)记录。附卸载老版本过程

    首先说明:老版本数据库没有数据,所以无数据备份过程.如果你在升级数据库过程里,需要备份数据,请另外自行处理. 1.下载最新版MySQL.解压待用 wget https://dev.mysql.com/ ...

  9. 莫比乌斯函数 51nod-1240(合数分解试除法)

    就是输出n时,莫比乌斯函数的值.直接将n唯一分解即可. 思路:筛出105以内的素数,因为109开方,105就差不多.当一个大数还没有被1000个素数分解,那么这个数基本上可以认为是素数(为合数为小概率 ...

  10. WIN10 + VS 2013 配置Opencv2.4.1.3 32位

    VS2013 配置Opencv2.4.1.3    32位 系统变量 Path: F:\2biancheng_tool\Opencv2413\opencv\build\x86\vc12\bin 用户变 ...