跪求C语言编程高手

来源:百度知道 编辑:UC知道 时间:2024/06/05 15:35:36
编写一个小程序,可以读入一个英文的文本文件,显示这个文件,并统计这个文件有多少个字符,多少个单词,多少个空白(空格,TAB),多少个段落,按照单词的长度进行统计
解答者请详细说明下 本人小白

根据楼主的要求,这个程序主要的工作分三部分:
1. 统计字符的数量。
2. 按照长度统计单词数。
3. 统计段落的数量。
其中1,根据可输入字符的asc值在0-128之间,其中空格为32,tab为9,回车为10,其他可见字符为33-126,具体的值可以参见asc吗表,到网上随便一搜到处都是,所以创建一个128的hash表,用字符作下标,就可以直接统计字符数。
其中2,也用hash表作,只不过下标的值是单词的长度,hash表长256,也就是说统计最短为1,最长为255的单词数。只有字母才能组成单词。空格、tab、非字母的字符都可以作为单词的分隔。
其中3,只有有字符的才能称为段落,多个回车只能算一个段落。

至于读文件,我用的是单个字符的读,没有考虑性能。

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

int main(int argc, char **argv)
{

if (argc != 2) {
printf("Usage: %s filename\n", strrchr(argv[0], '/')+1);
exit(0);
}

int hash[128] = {0};
int hash_letter[256] = {0};

FILE *fd = fopen(argv[1], "r+");
if (fd == NULL) {
printf("err: %s\n", strerror(errno));