Gitee 代码链接:https://gitee.com/huangxue1111/codes/12rfs3ztj5ga8ymce7qi910

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
#define IN 1
#define OUT 0
void main() {
FILE *fp;
int length;
fp = fopen("wang.txt", "r");//打开要计数的文件
if (fp == NULL)
{
printf("can not open file");
exit(0);
}
fseek(fp, 00, SEEK_END);
length = ftell(fp);
printf("%d\n", length);//确定所要查找的文件中总字符数长度
rewind(fp);
char str[100000], c;
fread(str, sizeof(char), length, fp);//从文件中读取所有的字符到str序列
int i, num1 = 0, num2 = 0, num3, num4=0, word = OUT;
for (i = 0; (c = str[i]) != '\0'; i++)
{
if (c == ' ')//判断字符中单词数
{
num2++;
word = OUT;
}
else
{
if (word == OUT)
{
word = IN;
num1++;
}
}
if ((c = str[i]) == '\n')
{
num4++;
}
}
num3 = length - num2-num4*2;//字符数
num4++;//行数
fclose(fp);
printf("空格数为%d\n", num2);
printf("单词数为%d\n行数为%d\n字符数为%d\n", num1, num4, num3);
system("pause");

}

该程序主要代码做了相关注解。WC程序,程序流程:选txt文件——读取字符数加入一个数组——for循环计数

字符转移到数组主要分成两个部分:

第一部分先确定我们文件中的数据的长度,利用fseek函数判断指针;

第二部分利用数据长度把所有的字符一次性全部读入到str数组中,利用fread函数

判断行数利用的是for循环挨个进行字符的判断,判断数组中的\n个数,然后根据\n的个数确定行数,用num4表示

空格数的判断也是利用for循环确定字符中共有多少个空格字符,用num2表示

单词数的个数是利用两个空格之间为一个单词的算法来确定的,具体算法即for循环中第一个if语句,用num1表示

字符数的判断则可利用总字符数,行数,还有空格数通过推导得出num3=length-num2-num4*2

这里以wang.txt为例进行演示,共三组测试数据:

第一组

第二组:

第三组:

三组测试数据如上。

第一个博客,激动。

参考文献:https://bbs.csdn.net/topics/390951688?page=1

转载于:https://www.cnblogs.com/huangxue1111/p/9697290.html

wordcount C相关推荐

  1. 2021年大数据Spark(三十六):SparkStreaming实战案例一 WordCount

    目录 SparkStreaming实战案例一 WordCount 需求 准备工作 代码实现 第一种方式:构建SparkConf对象 第二种方式:构建SparkContext对象 完整代码如下所示: 应 ...

  2. 2021年大数据Spark(二十七):SparkSQL案例一花式查询和案例二WordCount

    目录 案例一:花式查询 案例二:WordCount 基于DSL编程 基于SQL编程 具体演示代码如下: 案例一:花式查询 package cn.itcast.sqlimport org.apache. ...

  3. Spark-Spark setMaster WordCount Demo

    Spark setMaster源码 /*** The master URL to connect to, such as "local" to run locally with o ...

  4. Ubantu下hadoop运行第一个例子wordcount过程

    Ubantu12.04下hadoop-1.2.1运行第一个例子wordcount过程,分享一下 将WordCount.java文件放在Hadoop安装目录下,并在安装目录下创建输入目录input,目录 ...

  5. WordCount扩展与优化

    合作者:201631062327,201631062128 码云地址:https://gitee.com/LIUJIA6/WordCount3 一:项目说明 本次项目是在上次作业WorldCount的 ...

  6. 初学Hadoop之图解MapReduce与WordCount示例分析

    Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(GFS) ...

  7. java8 wordcount_Spark2.x与Java8下WordCount示例

    spark深度学习指南+进阶实战2册 123.9元 包邮 (需用券) 去购买 > 不用 lambda 的基础版 import org.apache.spark.api.java.JavaPair ...

  8. 006 Spark中的wordcount以及TopK的程序编写

    1.启动 启动HDFS 启动spark的local模式./spark-shell 2.知识点 textFile: def textFile( path: String, minPartitions: ...

  9. 命令行下编译Wordcount

    1. 编辑WordCount.java文件,在下载的hadoop安装包里有WordCount的例子 http://mirrors.hust.edu.cn/apache/hadoop/common/ha ...

  10. 命令行运行hadoop实例wordcount程序

    参考1:http://www.cnblogs.com/flying5/archive/2011/05/04/2078408.html 需要说明的有以下几点. 1.如果wordcount程序不含层次,即 ...

最新文章

  1. quickpcb添加pcb库_quickpcb使用说明
  2. opencv-python视频处理之录制视频
  3. hdu2102(bfs)
  4. jQuery kxbdMarquee 无缝滚动
  5. int函数在Oracle,vb中int是什么意思 ?
  6. 安装eclipse版本oxygen,及maven导入spring mvc项目并运行
  7. scrapy爬取某网站文章
  8. dedecms 常用标签
  9. django filter查询多选_django model filter查询
  10. leetcode python3 简单题21. Merge Two Sorted Lists(Linked)
  11. MBR分析(1): 代码获取与初始化
  12. MYSQL间隙锁详解
  13. 全球人工智能产业链产业图谱
  14. Ubuntu20.04 用 `hwclock` 或 `timedatectl` 设置RTC硬件时钟为本地时区
  15. 新媒体时代下如何践行网络口碑营销?
  16. 轩小陌的Python笔记-day16 模块二总结
  17. DailyFi - 9.15|PrimeDAO 完成 200万美元种子轮融资,Paradigm 研究员发布新 NFT 碎片化产品...
  18. MSELoss() 函数
  19. AutoCAD Civil 3D-超高及数据编辑输入
  20. Jetson-Xavier-NX使用教程(这里说插上烧好镜像的SD卡上电就可以直接用了)

热门文章

  1. Android日志[基础篇]Android Log日志输出
  2. 电脑一开机出rebootand_北京联想电脑维修点【蓝伟博达笔记本维修吧】
  3. 底层实现_Java AOP的底层实现原理
  4. c语言中O空字符,OC语言中字符串的使用
  5. ubuntu 中 ROS 一些报错的解决
  6. 高考python必考题目_假如高考考python编程,这些题目你会几个呢?
  7. python使用pkg包_Python deb-pkg-tools包_程序模块 - PyPI - Python中文网
  8. anaconda3 tensorflow安装踩坑记(WIN10+tensorflow带gpu版本)
  9. php中多选提交如何获取,php中checkbox值获取,显示,多选值获取
  10. 取值方法_「EV3进阶课」制作小游戏:数据取值体系要统一(三)