第三周作业(三):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。

posted @ 2016-03-23 14:52  eininy  阅读(185)  评论(0编辑  收藏  举报