wc.exe 编写说明
gitee地址:https://gitee.com/yusaisai/wordcount
1需要说明
1.1 概要
wc接收一个文本文件,并统计这个文本文件中的信息(行数、字数等)
1.2 基本功能
wc.exe -c file.c //返回文件 file.c 的字符数
wc.exe -w file.c //返回文件 file.c 的单词总数
wc.exe -l file.c //返回文件 file.c 的总行数
wc.exe -o outputFile.txt file.c //将结果输出到指定文件outputFile.txt
注意:
空格,水平制表符,换行符,均算字符。
由空格或逗号分割开的都视为单词,且不做单词的有效性校验,例如:thi#,that视为用逗号隔开的2个单词。
-c, -w, -l参数可以共用同一个输入文件,形如:wc.exe –w –c file.c 。
-o 必须与文件名同时使用,且输出文件必须紧跟在-o参数后面,不允许单独使用-o参数
2 基本思路
2.1 接受参数
参数的形式有两种:长选项、短选项,选项间可以组合,长选项用空格隔开各个参数
例: wc.exe --word --charater file.c
短选项可以多个直接叠加或者,也像长选项一样分开写
例: wc.exe -wc file.c
wc.exe -w -c file.c
对于一个命令行程序,它可以接受来自命令行的参数。
c语言的main函数中有两个参数:int main (int argc, char *argv[])
,这两个参数就是用于这个参数的输入。
argc 一个整数,代表有多少个命令行参数,在此注意两个点
1、 参数间是用空格格开的;
2、程序名是第一个参数。
argv[i]是一个指针,指向第i个参数的首地址
理解了以上的两人个参数就简单了,只需要做一些基本的字符串处理就可以了。
2.2.1 -h参数
这个参数单独说是因为这个参数不能和别的参数混用,所以我在程序里面是单独写的,一开始就判断是否用户需要的是help帮助,如果是的话,那么完全不必要再运行程序(打开文件),直接exit中止进程。
2.2.2 -w -c -l 参数
这三个参数都是一个路数:
1、打开文件;
2、判断要做的操作;
3、执行操作。
它们间只有步骤3是不同的,所以有理由把3写成不同的函数,再由2判断执行哪个。
有一些细节问题是可以考虑的。
比如,因为单复数的关系,有一行/个 单词/字母,应该是不同的表达(是否有s)
额外就是判断一个单词的算法也是值得考虑的问题,我的想法是,如果这个