将输入的制表符替换成适当数目的空格,使空格充满到下一个制表符终止位的地方
开始一点点测试,发现的制表符的特性,但是数学太差,没能总结出公式来!
上网查了一下原来有公式,才把这个程序搞定
#include <stdio.h> #define DETAB 8 //制表符默认长度 void main() { int c; int ch = 1; /* 当前字符位 */ int nbspNum = 0; /* 输出空格数 */ while ( (c=getchar()) != EOF ) { if ( c == '\t' ) { /** * 说明: * 当字符在第1位时,输出8个空格 * 第2位,输出7个空格 * 第5位,输出4字空格 */ nbspNum = DETAB-(ch-1)%DETAB; while ( nbspNum > 0 ) { putchar( ' ' ); nbspNum--; ch++; } } else if ( c == '\n' ) { putchar( c ); ch = 1; } else { putchar( c ); ch++; } } }
测试结果: