对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 ...
随机推荐
- logstash启动失败的问题追查
在实验中logstash是作为日志过滤器的作用,日志收集使用的则是filebeat组件.redis作为缓存器,logstash从redis中拉取数据进行过滤并传给elasticsearch组件. 但是 ...
- Windows Server 2012 RS 配置IIS8.0+发布网站
一.配置iis 8.0 IIS 8.0 是 windows server 2012 自带的服务器管理系统.相比之前版本,IIS 8.0 安装和操作都更加简单,界面也很简洁,安装也很迅速. 1. 进入w ...
- creo5.0安装教程(图文详解)
PTC公司最近发布了Creo 5.0正式版 ,作为最具其革命性的新一代产品设计软件,其所提供专业的二维和三维设计设计,能帮助企业和公司进行产品生命周期管理(PLM)和制定服务管理解决方案.Creo5. ...
- 【项目 · WonderLand】 系 统 设 计
团 队 作 业 ---- 系 统 设 计 Part 0 · 简 要 目 录 Part 1 · 完 善 需 求 规 格 说 明 书 Part 2 · 团 队 编 码 规 范 Part 3 · 数 据 库 ...
- java 封装及this 用法
封装:主要用于将类中的成员名(类变量)通过 private关键字进行访问权限的设定,使用 private后,成员变量只能在当前类中进行访问,超过该类时访问提示不存在,当然也可以用于方法中,但较少.如果 ...
- kafka管理器之kafka-manager
功能 为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫做Kafka管理器的基于Web工具,叫做 Kafka Manager.这个管理工具可以很容易地发现分布在集群中的哪些to ...
- Navicat 连接Oracle时提示oracle library is not loaded的问题解决
笔者使用的Navicat Premium 12启动界面截屏: 请注意是64位的.笔者win7 64位系统. 连接Oracle时提示“oracle library is not loaded”. 解决方 ...
- WPF之托盘图标的设定
首先需要在项目中引用System.Windows.Forms,System.Drawing; using System; using System.Collections.Generic; using ...
- Codeforces Round #245 (Div. 2)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/yew1eb/article/details/25609981 A Points and Segmen ...
- centos7下安装docker(7docker base command 命令词典)
上一章中我总结了学习docker 镜像时所用过的命令,今天先来将docker base command 记录一下,参考:https://docs.docker.com/edge/engine/refe ...