第三周作业(三):wc程序
本程序实现了统计文本档案中,文本单词数、字符数以及行数。
代码如下:
#include<stdio.h> #include<stdlib.h> int linestatistics(FILE *b) { int m=1; char ch; b=fopen("abc.txt","r"); if (b==NULL) { printf("找不到这个文件!"); exit(-1); } for(;(ch=fgetc(b))!=EOF;) { if(ch=='\n') m++; } return(m); } int wordstatistics(FILE *a) { int m=0; int flag1=0,flag2=0; char ch; a=fopen("abc.txt","r"); if (a==NULL) { printf("找不到这个文件!"); exit(-1); } for(;(ch=fgetc(a))!=EOF;) { if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')||(ch>='0'&&ch<='9')||ch=='_') flag1=1; else flag2=flag1+flag2; if((flag1+flag2)==2) { m++; flag1=0; flag2=0; } } fclose(a); return(m); } int main() { int i,k,j; i=0; k=0; j=0; char ch; FILE *fp; fp=fopen("abc.txt","r"); if (fp==NULL) { printf("找不到这个文件!"); exit(-1); } for(;ch=fgetc(fp)!=EOF;) { k++; } fclose(fp); i=linestatistics(fp); j=wordstatistics(fp); printf("文本中共有行数%d,字符数%d,单词数目%d\n",i,k,j); return(0); }
本程序在目录下建立一个供给统计的abc.txt,所统计的数据全来自于abc.txt,若是把源代码放入txt中,
即可得
程序已上交至coding。