zoukankan      html  css  js  c++  java
  • 练习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 == '	'){
    23             blankNum = NUMTAB - (listNum % NUMTAB);
    24             for(i = 0;i < blankNum; i++){
    25                 putchar(' ');
    26             }
    27             listNum += blankNum;
    28         }
    29         else if(c == '
    '){
    30             listNum = 0;
    31             putchar(c);
    32         }
    33         else{
    34             listNum++;
    35             putchar(c);
    36         }
    37     }
    38 
    39     return 0;
    40 }

    4.结果

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

       

  • 相关阅读:
    Linux网络----数据包的接收过程
    Linux----运维必备的 13 款实用工具
    Linux----常用命令
    Linux----内核学习过程
    Linux性能及调优指南(翻译)之Linux进程管理
    Linux 下cut的使用
    Linux ps -ef和ps aux的区别
    Linux awk命令的一个简单应用
    安卓中的三种监听方式 (按钮控件举例)
    安卓中学习 sqlite
  • 原文地址:https://www.cnblogs.com/Triomphe/p/8784907.html
Copyright © 2011-2022 走看看