第三週作業(三):wc程式

eininy發表於2016-03-23

      本程式實現了統計文字檔案中,文字單詞數、字元數以及行數。

      程式碼如下:

     

#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。

相關文章