练习5-12

主函数的分工还是和之前一样.
esettab函数制定对照表.
entab负责将输出与对照表对照并输出.
这个练习跟之前的11没什么太大变化.
esettab函数中
首先判断argc也就是参数数量.
如果是1,那么参数为默认.则
在tab数组中将每隔TABINC的位置的元素设置为制表符终止位的位置(YES).
其余全是正常位置(NO).
否则判断,argc(参数数量)是否等于3,第一个参数是否是负号-开头,第二个参数是否是正号+开头.(正常情况)如果是则执行下列语句.
读取第一个参数的数值,这里有个地方就是那个&(++argv)[1].
这里圆括号()和[]数组下标是同级的按从左到右计算,argv是指针数组,第0个元素是程序名,++argv就是第一个参数的字符串数组.然后
取值,数组下标1就是第一个参数数组的第二个元素.然后用&取址运算符取址将地址传给atoi函数.atoi会自动获取它之后的数字.,然后将这个数字赋值给变量pos.
下面的inc同理.
参数的值都读完后.根据值进行tab数组的初始化.将相应位置设置成制表符终止位.
上述都不满足则执行下列语句.
首先将tab数组全部设置成NO.
然后判断参数是否大于1.
如果是,将参数的值atoi(*++argv)赋值给pos.
然后判断pos是否合法.
最后将相应位置设置成制表符终止位.

后面那个就是改成了detab/

你可能感兴趣的:(练习5-12)