第三周作业(三)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\n",charnum,wordnum,linenum); }
文件那里我用的是手动输入待操作的文件目录和名称,一开始我想固定读某一个文件(根目录下之类的),但是后来想了想感觉这样不太灵活。
整个程序大体思路是先将每行的内容都先存到一个数组里(a[100],这个容量可以改,不过我想应该够了吧),然后再对数组遍历操作,实现对应的字符,单词,行数的累加。
下面是测试截图:
这里我在e盘下创建名为wc的文本文件输入如下内容
然后运行程序,统计结果如下
自己数了一下都是正确的。