鱼C论坛

 找回密码
 立即注册
查看: 1894|回复: 2

编写一个程序detab,用正确的空格数替换输入中的制表符,直到下一个制表符停止。假...

[复制链接]
发表于 2020-4-27 17:29:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
编写一个程序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);
这一步什么意思,看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-27 17:44:24 | 显示全部楼层
我是想问问什么制表符跳过的空格是{8-n%8}个呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-27 17:48:11 | 显示全部楼层
我知道了,制表符不一定是8位,他会跳到离8的倍数最近的位置
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-14 18:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表