C语言:统计文本文件单词数、段落数。

阅读: 评论:0

C语言:统计文本文件单词数、段落数。

C语言:统计文本文件单词数、段落数。

题目描述:打开一个英文文本文件,假设文本文件单词之间全部用“空格”隔开,文本各段之间用“回车符”分开,统计输出文本的段数量,总单词数量,以及文本段的最长、最短、平均单词数量。

 < 文本内容:随便百度的内容

 C语言代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_LINE 1024

void main(){
    //duanluo 表示段落数,words表示某一段的单词数
    int duanluo = 0, words = 0;
    //min表示最小段落的单词数,max:最大段落的单词数,sum:单词总数
    int min = 65525, ave = 0, max = 0,sum = 0;
    FILE* fp;        //文件指针
    
    char buffer[MAX_LINE] ;        //缓冲区
    int len ;    //行字符个数
    int i;
    fp = fopen(&#","r");
    if(fp == NULL){
        printf("cannot open file!");
        exit(0);
    }
    //读取文件内容
    while(! feof(fp)){
        
        // fgets() 在读出 MAX_LINE 个字符之前,遇到 换行符 或 EOF 则读出结束
        if(fgets(buffer, MAX_LINE, fp) != NULL){
            duanluo ++;
            len = strlen(buffer);
            //遇到第一个空格之前已有一个单词
            words = 1;
            sum ++;
            //len - 1 是为了去掉换行符所占位置
            for(i = 0; i < len - 1; i++){
                if(buffer[i] == ' '){
                    words ++;
                    sum ++;
                }
            }
        }
        
        if(min > words){
            min = words;
        }
        if(max < words){
            max = words;
        }
        
    }

    fclose(fp);
    ave = sum / duanluo;
    //输出
    printf("nt 总单词数为 %d n n",sum);
    printf("t 最小段落单词数为 %d n n",min);
    printf("t 最大段落单词数为 %d n n",max);
    printf("t 总段落数为 %d n n",duanluo);
    printf("t 段落平均单词数为 %d n",ave);

}

运行结果:

 

本文发布于:2024-02-01 18:06:01,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170678223638493.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:词数   段落   文本文件   语言
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23