对wordcount单词字母部分的修改
原始代码:
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单词字母部分的修改的更多相关文章
- hadoop笔记之MapReduce的应用案例(WordCount单词计数)
MapReduce的应用案例(WordCount单词计数) MapReduce的应用案例(WordCount单词计数) 1. WordCount单词计数 作用: 计算文件中出现每个单词的频数 输入结果 ...
- Eclipse上运行第一个Hadoop实例 - WordCount(单词统计程序)
需求 计算出文件中每个单词的频数.要求输出结果按照单词的字母顺序进行排序.每个单词和其频数占一行,单词和频数之间有间隔. 比如,输入两个文件,其一内容如下: hello world hello had ...
- 第六篇:Eclipse上运行第一个Hadoop实例 - WordCount(单词统计程序)
需求 计算出文件中每个单词的频数.要求输出结果按照单词的字母顺序进行排序.每个单词和其频数占一行,单词和频数之间有间隔. 比如,输入两个文件,其一内容如下: hello world hello had ...
- Hadoop WordCount单词计数原理
计算文件中出现每个单词的频数 输入结果按照字母顺序进行排序 编写WordCount.java 包含Mapper类和Reducer类 编译WordCount.java javac -classpath ...
- Python 单词字母顺序不变且所有倒排
翻出google測试project师的一道题目: 设计一个函数,不论什么语言都能够,实现下面功能: 一个句子,将句子中的单词所有倒排过来,但单词的字母顺序不变.eg. this is a real ...
- Spark本地环境实现wordCount单词计数
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6814778610788860424/ 编写类似MapReduce的案例-单词统计WordCount 要统计的文件为 ...
- hive学习之WordCount单词统计
看hive目录下就可以了,程序在hdfs里创建一个hive的大文件夹,相当于数据库吧.上面就是一个完整的利用hive来做单词统计,其中的优劣也能看出一点.
- eclipse批量替换,修改变量名或单词(两种方法)
第一种(常用): ①如图:双击选中变量名id,右键选择Refactor中的Rename ②之后如下图所示,红箭头的带有方框的就是选中修改的变量名,此时修改提示框的内容,后面带方框的也跟着修改, 而蓝色 ...
- 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 ...
随机推荐
- MySQL客户端工具的选择
最近因系统云化项目,学习使用MySQL集群,为了找一款顺手的mysql客户端,反复使用了多个工具,并筛选出一个自认为最满意的,在此分享. 先说我的选择:SQLyog. 尝试的客户端:Toad for ...
- css 位置居中篇,flex布局【转】
最近看到沅老师的博客,关于flex布局的,觉得不错,http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html
- Python--详解Python中re.sub
给出定义: re.sub(pattern, repl, string, count=0, flags=0) Return the string obtained by replacing the le ...
- read_csv报错Initializing from file failed
Python版本:Python 3.6 pandas.read_csv() 报错 OSError: Initializing from file failed,一般由两种情况引起:一种是函数参数为路径 ...
- attachBaseContext
at android.content.ContextWrapper.attachBaseContext(ContextWrapper.java:66) at android.view.ContextT ...
- MongoDB 4.6.1 c++ driver 编译
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/sheismylife/article/details/25512251 这个版本号已经和之前不一样了 ...
- 转载 WebService 的CXF框架 WS方式Spring开发
WebService 的CXF框架 WS方式Spring开发 1.建项目,导包. 1 <project xmlns="http://maven.apache.org/POM/4.0 ...
- go标准库的学习-fmt
参考https://studygolang.com/pkgdoc 导入方式: import "fmt" mt包实现了类似C语言printf和scanf的格式化I/O.格式化动作(' ...
- 【opatch打补丁】oracle10.2.0.5.0升级10.2.0.5.9 for linux
https://wenku.baidu.com/view/c38702b56edb6f1afe001f59.html 这篇文章也不错,可参考 任务:oracle 10.2.0.5.0 打补丁升级 ...
- mysql数据表的字段操作
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) DEFAULT NULL, ` ...