这周是一个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. jQuery的1.x版本的$(element).css()设置元素字体颜色时出现的问题(在IE8以下)

    最近赶项目,自己写了个基于jQuery的弹出层插件,中间遇到一个问题,怎么也找不到解决方法,最后发现就是空格的问题...欲哭无泪啊... 在给函数传参时,因为写css代码时习惯在:后面加个空格在写样式 ...

  2. python基础中的四大天王-增-删-改-查

    列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...

  3. token回话保持,axios请求拦截和导航守卫以及token过期处理

    1:了解token:有时候大家又说token令牌.整个机制是前端第一次登陆发送请求,后端会根据前端的用户名和密码, 通过一些列的算法的到一个token令牌, 这个令牌是独一无二的,前端每次发送请求都需 ...

  4. mr微博内容推荐

        第一次迭代 1 package com.laoxiao.mr.weibo; import java.io.StringReader; import org.apache.commons.lan ...

  5. GUI学习之三——QObject学习总结

    鉴于PyQt控件的继承关系,我们先学习PyQt控件的基类——QObject.  一.所有的QT对象的基类 我们先看一下PyQt里空间的继承关系,稍微改一下代码,显示出继承关系 from PyQt5.Q ...

  6. mysql触发器trigger 实例详解

    mysql触发器trigger 实例详解 (转自 https://www.cnblogs.com/phpper/p/7587031.html)   MySQL好像从5.0.2版本就开始支持触发器的功能 ...

  7. Springboot+Mybatis+Thymeleaf

    工具Eclipse 2018 Maven 配置 ThymeLeaf 安装:  https://blog.csdn.net/xingqibaing/article/details/82787164 sp ...

  8. 小程序跳转tabbar页面

    如果在app.json 配置tabbar 的时候配置了 跳转的页面的链接: 在其余的子页面,设置用navigator 进行跳转会发现 在tabbar 设置过的页面无法进行跳转,这时需要在navigat ...

  9. 五分钟让你读懂UML常见类图

    相信各位同学在阅读一些源码分析类文章或是设计应用架构时没少与UML类图打交道.实际上,UML类图中最常用到的元素五分钟就能掌握,经常看到UML类图但还不太熟悉的小伙伴赶紧来一起认识一下它吧:)   一 ...

  10. JavaScript判断系统语言

    var lang= null; function language(){ var language=null; if (navigator.appName == 'Netscape'){ langua ...