编写一个程序detab,用正确的空格数替换输入中的制表符,直到下一个制表符停止。假...
编写一个程序detab,用正确的空格数替换输入中的制表符,直到下一个制表符停止。假设一组固定的制表符停止,比如每n列一次。n应该是一个变量还是一个符号参数?1 /**
2 * 编写程序detab,将输入中的制表符替换成数目的空格,
3 * 使空格充满到下一个制表符终止位的地方.
4 * 制表符:制表符(也叫制表位)的功能是在不使用表格的情况下在垂直方向按列对齐文本。
5 * 2018-4-9
6 * Author:TriompheL
7 */
8
9 #include <stdio.h>
10
11 #define NUMTAB 8
12
13 int main()
14 {
15 /*
16 *blankNum : 将要输出的空格数目
17 *listNum: 每行第一个字符开始,当前字符位置.
18 */
19 int c,listNum=0,blankNum,i;
20
21 while( (c=getchar()) != EOF){
22 if(c == '\t'){
23 blankNum = NUMTAB - (listNum % NUMTAB);
24 for(i = 0;i < blankNum; i++){
25 putchar(' ');
26 }
27 listNum += blankNum;
28 }
29 else if(c == '\n'){
30 listNum = 0;
31 putchar(c);
32 }
33 else{
34 listNum++;
35 putchar(c);
36 }
37 }
38
39 return 0;
40 }
blankNum = NUMTAB - (listNum % NUMTAB);
这一步什么意思,看不懂
我是想问问什么制表符跳过的空格是{8-n%8}个呢
我知道了,制表符不一定是8位,他会跳到离8的倍数最近的位置
页:
[1]