这周是一个wc的程序,通过C语言在WINDOWS上实现的。

我在通过参考的代码后,发现WC程序的代码其实相当简洁,主要的代码不过十数行。主要通过设置一个字符型变量,这个变量可以得到一个从键盘输入的字符,并且判断这个字符是什么类型的,从而给相应的计数器计数。

譬如在本程序中,首先,设置当前状态的变量,判断当前是否在统计的区域state,统计字符的整数型变量characters,统计行数的整数型变量lines,统计单词的整数型变量words,以及获得键盘的输入的字符型变量c。初始化这些整数型的变量,让其都为0,与此同时,state==0表示当前的光标在单词之中,state==1时则表示光标不在单词之中。循环条件为当从键盘输入的字符不为‘0’时,则继续循环。如果不为0,则说明输入了一个有效的字符,这时统计字符的整数型变量characters++,相应的,如果得到的字符为’\n‘则表示当前的输入为回车,表示换行。而字符’ ‘,字符’\t‘,字符’\n‘出现时,我们可以认为此时的光标从单词里面跳到单词的外面,一个单词结束了,置state为0,随后在判断完输入的字符后,判断state的状态,如果state等于0,那么words++,随后置state为1,表示一个新的单词开始输入。

wc程序是一个简单的代码,我基本没有对代码进行修改,只是添加了一点注释。

代码:https://github.com/oreki99710710/assignment2/tree/master

代码参考来源:http://blog.chinaunix.net/uid-22566367-id-381958.html

作者:sunjiangang-ok

wordcounter的更多相关文章

  1. 第三周作业(三)---WordCounter

    需求是这样的.写出一个程序,模仿wc.exe,可以统计出文件的一些信息(比如字符数.单词数目等等) 对于这个程序,我仍然用我从大一学来的C语言写的. 第一步:打开文件 printf("请输入 ...

  2. 软件工程——Word-Counter

    Python实现Word-Counter 一.前言 Github地址:https://github.com/hzquestion/Word-Counter 二.项目概述 实现一个统计程序,它能正确统计 ...

  3. WordCounter Python实现

    <!doctype html>博客.md p:first-child, #write > ul:first-child, #write > ol:first-child, #w ...

  4. Storm的wordCounter计数器详解

    原文:http://www.maoxiangyi.cn/index.php/archives/362 拓扑 点击(此处)折叠或打开 package cn.jd.storm; import backty ...

  5. Ruby实现wordCounter

    做解密发现的: m={} File.open("test1.txt") do |f| f.each_line do |line| line.chomp! #去除每行结尾的回车(\n ...

  6. WordCounter项目(基于javase)

    1.  Github项目地址: https://github.com/Flyingwater101/WordCount 1.  PSP表格 PSP2.1 Personal Software Proce ...

  7. VSCODE 插件初探

    写在前面 分享一个vscode插件background(用于改变背景).点击直接跳到vscode插件开发步骤 做vscode的插件,很久就有这个想法了,但是一直因为这样,那样的事情耽误,放弃了N次.不 ...

  8. LINQ之路 8: 解释查询(Interpreted Queries)

    LINQ提供了两个平行的架构:针对本地对象集合的本地查询(local queries),以及针对远程数据源的解释查询(Interpreted queries). 在讨论LINQ to SQL等具体技术 ...

  9. storm入门(二):关于storm中某一段时间内topN的计算入门

    刚刚接触storm 对于滑动窗口的topN复杂模型有一些不理解,通过阅读其他的博客发现有两篇关于topN的非滑动窗口的介绍.然后转载过来. 下面是第一种: Storm的另一种常见模式是对流式数据进行所 ...

随机推荐

  1. 记录-springcloud -mybatis

    搭建springcloud与mybatis 从数据库读取数据返回到浏览器 1:我的工程目录 entity  和mapper 中的代码 controller和service的代码 启动类的文件:记得加包 ...

  2. Junit集成测试

    Spring4.x高级话题(七):Spring的测试 一. 点睛 测试是开发工作中不可缺少的部分,单元测试只针对当前开发的类和方法进行测试,可以简单通过模拟依赖来实现,对运行环境没有依赖:但是仅仅单元 ...

  3. Kubernetes节点维护

    1.设置节点为不可调度 kubectl cordon $NODENAME 2.使用kubectl drain优雅的结束节点上的所有 pod 并同时标记节点为不可调度 kubectl drain $NO ...

  4. 一张图说明TCP和UCP协议

    图片来自网络. 本来不想打字了,但是博客园有字数限制... 第一次 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认:SYN:同步序列编号( ...

  5. 判断作业完成之 读取log 脚本

    tail 用于读取文件末尾 -n 后边加行数 -f 为持续追踪,实时输出 NUMECA 输出最后两行 ...done in 727.84-sec (STARTING NUMECA FLOW SOLVE ...

  6. get通配符

    这篇文章是在上一篇常用正则表达式(合) https://blog.csdn.net/yeyeye200/article/details/86186889 基础上的延伸:关于通配符的使用~ 一开始get ...

  7. 六、pyqt5对话框——QInputDialog、QColorDialog、QFontDialog、QMessageBox、QFileDialog

    目录:  一.对话框综合示例 二.QDialog 三.QInputDialog 四.QMessageDialog 五.QFileDialog pyqt5的对话框有多种类型,比如输入对话框(QInput ...

  8. pl/sql调试存储过程

    1.找到对应的存储过程 2.在存储过程名称上右键,选择Test 3.点击1标识的按钮(begin debugger),选择2开始调试 4.存储过程如需参数,需要在右侧下方的表格区域(3)填入对应的值即 ...

  9. 【JAVA】学习笔记(2)

    Java完整的类的定义 [pubilc][abstact|final] class className [extends superclassName] [implements InterfaceNa ...

  10. Linq语言,由红色部分可直接代替绿色(List,dictionary)

    /// <summary> /// 获取最近5分钟缓存的车量 /// </summary> /// <param name="carNo">&l ...