原始代码:

	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. HTTP协议响应码及get请求和post请求比较

    HTTP协议响应码 1XX:信息响应类,表示接收到请求并且继续处理 2XX:处理成功响应类,表示动作被成功接受.理解和接受 200 OK:表示从客户端发来的请求在服务器端被正常处理了 204 No C ...

  2. 3.8Python数据处理篇之Numpy系列(八)---Numpy的梯度函数

    目录 目录 前言 (一)函数说明 (二)一维数组的应用 (三)多维数组的应用 目录 前言 梯度函数,其中的梯度也就是斜率,反映的是各个数据的变化率.在numpy中只有一个梯度函数. (一)函数说明 ( ...

  3. Linux 小知识翻译 - 「架构 续」(arch)

    上次,从「计算机的内部构造」的角度解释了架构这个术语.这次,介绍下架构中经常提到的「i386架构」及之后的「i486」,「i586」. 安装Linux的时候,很多人即使不了解但也会经常听到i386架构 ...

  4. 反转链表的golang实现

    问题:反转一个单链表. 输入: ->->->->->NULL 输出: ->->->->->NULL 首先先认识一下链表这个数据结构: 链表节 ...

  5. EasyUI DataGrid自适应高度

    我的页面分为上下两部分,但发现下面有DataGrid的高度总是自动改,数据根本显示不出来. 后来在博客园里看到这个:http://www.cnblogs.com/xienb/archive/2013/ ...

  6. web笔试

    类型判断用到哪些方法? typeof和instanceof 值类型和引用类型的区别? 根据 JavaScript中的变量类型传递方式,又分为值类型和引用类型,在参数传递方式上,值类型是按值传递,引用类 ...

  7. DAG 模型 stacking boxes 动态规划

    题目:UVA 103 stacking boxes 题目大意: 给你两个数,一个是盒子的个数,一个是每一个盒子的维数.将一个个盒子互相装起来,让你求最多可以装多少个,要求字典序最小. 解析:这个就是盒 ...

  8. python五十八课——正则表达式(切割)

    切割:split(regex,string):返回一个列表对象 import re str1='i love shenzhen so much' regex=r' +?' lt=re.split(re ...

  9. 如何正確的使用 Runtime.exec()

    或許大部分有寫過Java程式的人都知道java.lang.Runtime這個class有一個method叫做exec(),可以被用來呼叫(調用)外部的程式.然而大部分的人都不知道這個method存在著 ...

  10. day22 Pythonpython random随机模块:略!!!本文os模块

    OS模块 用于提供系统级别的操作: os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相 ...