zoukankan      html  css  js  c++  java
  • 统计文件中的行数、单词数、字符数

    用C语言写的代码:

    #include<stdio.h>
    #include<string.h>
    int *getCharNum(char *filename,int *totalNum);
    int main()
    {
        char filename[30];
        int totalNum[3]={0,0,0};
        printf("Input file name: ");
        scanf("%s",filename);
        if(getCharNum(filename,totalNum))
        {
            printf("Total: %d line,%d words,%d chars
    ",totalNum[0],totalNum[2],totalNum[1]);
        }
        else
        {
            printf("Error!
    ");
        }
        return 0;
    }
    int *getCharNum(char *filename,int *totalNum)
    {
        FILE *fp;
        char buffer[1003];
        int bufferLen;
        int i;
        char c;
        int isLastBlank=0;
        int charNum=0;
        int wordNum=0;
        if((fp=fopen(filename,"rb"))==NULL)
        {
            perror(filename);
            return NULL;
        }
        printf("line words chars
    ");
        while(fgets(buffer,1003,fp)!=NULL)
        {
            bufferLen=strlen(buffer);
            for(i=0;i<bufferLen;i++)
            {
                c=buffer[i];
                if(c==' '||c=='	')
                {
                    !isLastBlank && wordNum++;
                    isLastBlank=1;
                }
                else if(c!='
    ' && c!='
    ')
                {
                    charNum++;
                    isLastBlank=0;
                }
            }
            !isLastBlank && wordNum++;
            isLastBlank=1;
            totalNum[0]++;
            totalNum[1]+=charNum;
            totalNum[2]+=wordNum;
            printf("%-7d%-7d%d
    ",totalNum[0],wordNum,charNum);
            charNum=0;wordNum=0;
        }
        return totalNum;
    }

    在D盘保存的文件

    输出结果为:

  • 相关阅读:
    CentOS LiveCD LiveDVD DVD 等版本的区别
    解决蛋疼的阿里云单CPU使用率的问题。
    软件工程在北航
    Introduction of Team Member
    proxool的配置
    hibernate配置jndi
    dbcp的配置
    绘制图片
    myeclipse搭建svn插件
    svn搭建
  • 原文地址:https://www.cnblogs.com/lisiyu/p/5312071.html
Copyright © 2011-2022 走看看