WordCount
经过老师及同学们在课堂上的点拨,博主本人亲自动手,发愤图强,纯手工打造了这款代码,绝无半点抄袭之言。
在代码中,我定义了字符数组 filename【20】、文件指针FILE *fp 、字符变量 charNum 、单词变量 wordNum 、行数变量 lineNum 以及一些 char 变量。同时定义了三个函数CharCount() 、WordCount() 、LineCount() 分别用来统计字符数、单词数和行数。用户在输入文件地址后,会出现操作选项,其中 ‘c’ 代表统计字符数, ‘w’ 代表统计单词数,‘ l ’代表统计行数。
大部分文件都是用键盘输入,并以ASCII码形式存储在存储器中,所以在 CharCount() 中,除了文件结束符EOF外,所有字符都会被统计,不仅仅是a~z、A~Z的英文字母,还包括空格符、换行符、‘;’、‘ “ ” ’、‘ . ’、‘ 、’ 等等。因此CharCount()比较简单,只需统计 ch = fgetc(arg) 的执行次数即可。
在WordCount() 中,我定义了ch1和ch2两个字符变量,ch2 = ch1 ; ch1 = fgetc(arg) ; 在实现整个文件遍历的同时,将当前文件指针指向的字符与上一个字符作比较,如果 ch2 是英文字母,而 ch1 是非英文字母,则单词数 wordNum 加一。在文件结尾处,指针指向EOF,所以需要在while()循环后wordnum++.
LineCount( ) 则直接查找换行符 ‘ \n ’ 的个数即可,同时在文件EOF后lineNum++。这三个函数在执行时都需执行 rewind(arg)函数,以便将文件指针提前至文件头。
代码地址:https://github.com/xzc1017964340/XANXUS