练习1-20 编写程序detab,将输入中的制表符替换成适当数目的空格.

1.问题描述

  编写程序detab,将输入中的制表符替换成适当数目的空格,使空格充满到下一个制表符终止位的地方.

  假设制表符终止位的位置是固定的, 换句话说每隔n列就会出现一个制表符终止位.
2.描述

  自己讲问题读了很多遍,没有懂什么意思.后来百度制表符,才明白其中意思

  制表符:制表符(也叫制表位)的功能是在不使用表格的情况下在垂直方向按列对齐文本。

  明白了什么是制表符,问题也轻松解决了.

3.代码

 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 }

4.结果

  因为dos的制表符是8位,所以自己也定义了八位.输出如下

 

   

转载于:https://www.cnblogs.com/Triomphe/p/8784907.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值