【第22期】观点:IT 行业加班,到底有没有价值?

关于空格与制表符转换

原创 2016年08月30日 20:03:45
#include<stdio.h>

#define TABINC  8

int main()
{
    int c, nb, nt, pos;
    nb = 0;
    nt = 0;
    for(pos = 1; (c = getchar()) != EOF; ++pos)         //获得横坐标
        if(c == ' '){                         //这对大片的空格有效  若是一个制表符的距离内含有两个不相邻的空格呢
            if(pos % TABINC != 0)  //pos坐标不在tabinc的整数倍上
                ++nb;
            else{                  //空格的坐标在制表符的位置
                nb = 0;
                ++nt;
            }
        }else{                         //在输入不是空格时  若是前面有制表符 会立即打出
            for( ; nt > 0; --nt)
                putchar('\t');
            if(c == '\t')        //将空格由\t代替
                nb = 0;
            else
                for( ; nb > 0; --nb)
                    putchar(' ');
            putchar(c);
            if(c == '\n')
                pos = 0;
            else if(c == '\t')    //将空格由\t代替后,需要
                pos = pos + (TABINC - (pos-1) % TABINC) - 1;//直接到下一个制表符的地址
        }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

制表符(tab 键)的概念

今天在写了一段简单的代码,只有两条语句。下面是代码: String s = "This\tis\tmy\tsmall\texample\tstring\twhich\tI'm\tgoin...

什么是制表符

制表位是指水平标尺上的位置,它指定了文字缩进的距离或一栏文字开始的位置,使用户 能够向左、向右或居中对齐文本行;或者将文本与小数字符或竖线字符对齐。用户可以在 制表符前自动插入特定字符,如句号或划线等...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

C语言中空格符,制表符,换行符详解

空白符的含义模糊,通常是指空格' ',其ASCII码为32。 制表符为'\t',相当于4个或8个空格符,其ASCII码为9。 换行符为'\n',作用是将光标移至下一行,其ASCII码为10。 ...

对C标准中空白字符(空格、回车符(\r)、换行符(\n)、水平制表符(\t)、垂直制表符(\v)、换页符(\f))的理解

C标准库里中声明了一个函数:               int isspace(int c);        该函数判断字符c是否为一个空白字符。        C标准中空白字符有:空格(‘ ...

SQL语法(制表符、换行符和回车)

SQL语句中的制表符, 换行符和回车

制表符

http://baike.baidu.com/view/1138182.htm 制表符(也叫制表位)的功能是在不使用表格的情况下在垂直方向按列对齐文本。比较常见的应用包括名单、简单列表等。也可以应用于...

程序代码缩进使用空格与制表符,哪个好?

这个问题一直是个有争议我问题,好像偏向于用空格的比较多,下面比较一下优缺点     对于代码尺寸,今天做了一个简单的统计,如下表,分别列出了几个源码文件使用空格与TAB键时的大小,看...
  • Nocky
  • Nocky
  • 2010-12-05 12:29
  • 3515

vim中缩进与空格的设置

我用过 VIM 后就爱上了这个强大的编辑器了,但是总是忘记设置缩进的这三个关键词,现在抄在这里,以备再忘……1 shiftwidth:这个是用于程序中自动缩进所使用的空白长度指示的。一般来说为了保持程...
  • sharkw
  • sharkw
  • 2007-12-14 01:31
  • 2248

Java编码原理与字符集编码转换

[list] [*][b]数字运算与位运算[/b] 在2进制里面,一个位只可能是0,或者1。 java里面支持的位运算有: ~ 按位非(NOT) & 按位与(AND) | 按位或(OR) ^ 按位异或(XOR 位操作需要跟逻辑操作区分开(逻辑运算符AND(&...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)