第三周作业(三)WordCount

这个程序主要就是统计一下文件中的字符数,单词数以及行数。

我的程序很简单,代码很简短,只实现了书中的基本功能。

#include <stdio.h>
#include <string.h>

void main()
{
    FILE *fp;  
    char filename[20],a[100];
    char c; 
    int len,i;
    int space=1; 
    int charnum=0,wordnum=0,linenum=0;  
    printf("请输入需要统计的文件的路径和名称: ");
    scanf("%s", filename);
    if( (fp=fopen(filename, "r"))==NULL)
    {
        printf(" 文件读取失败!");
    }
    while(fgets(a,100,fp)!=NULL)
    {
        len=strlen(a);
        for(i=0;i<len;i++)
        {
            c=a[i];
            if(c==' ')
            {  
                space=0;
            }
            else if(space==0)
            {  
                wordnum++; 
                space=1;
            }
        }
        charnum=charnum+len;
        linenum++;
    }
    charnum=charnum-linenum;
    printf("字符数:%d    单词数:%d    行数: %d
",charnum,wordnum,linenum);
}

文件那里我用的是手动输入待操作的文件目录和名称,一开始我想固定读某一个文件(根目录下之类的),但是后来想了想感觉这样不太灵活。

整个程序大体思路是先将每行的内容都先存到一个数组里(a[100],这个容量可以改,不过我想应该够了吧),然后再对数组遍历操作,实现对应的字符,单词,行数的累加。

下面是测试截图:

这里我在e盘下创建名为wc的文本文件输入如下内容

然后运行程序,统计结果如下

自己数了一下都是正确的。

原文地址:https://www.cnblogs.com/m108280546/p/5312346.html