C语言统计文件中的字符数、单词数以及总行数

您所在的位置:网站首页 c语言读取文件字符 C语言统计文件中的字符数、单词数以及总行数

C语言统计文件中的字符数、单词数以及总行数

2024-06-16 00:13| 来源: 网络整理| 查看: 265

统计文件的字符数、单词数以及总行数,包括:

每行的字符数和单词数文件的总字符数、总单词数以及总行数

注意:

空白字符(空格和tab缩进)不计入字符总数;单词以空格为分隔;不考虑一个单词在两行的情况;限制每行的字符数不能超过1000。

请先看代码:

#include #include int *getCharNum(char *filename, int *totalNum); int main(){ char filename[30]; // totalNum[0]: 总行数 totalNum[1]: 总字符数 totalNum[2]: 总单词数 int totalNum[3] = {0, 0, 0}; printf("Input file name: "); scanf("%s", filename); if(getCharNum(filename, totalNum)){ printf("Total: %d lines, %d words, %d chars\n", totalNum[0], totalNum[2], totalNum[1]); }else{ printf("Error!\n"); } return 0; } /** * 统计文件的字符数、单词数、行数 * * @param filename 文件名 * @param totalNum 文件统计数据 * * @return 成功返回统计数据,否则返回NULL **/ int *getCharNum(char *filename, int *totalNum){ FILE *fp; // 指向文件的指针 char buffer[1003]; //缓冲区,存储读取到的每行的内容 int bufferLen; // 缓冲区中实际存储的内容的长度 int i; // 当前读到缓冲区的第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\n"); // 每次读取一行数据,保存到buffer,每行最多只能有1000个字符 while(fgets(buffer, 1003, fp) != NULL){ bufferLen = strlen(buffer); // 遍历缓冲区的内容 for(i=0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3