编写程序,将输入中的制表符替换成适当数目的空格,使空格充满到下一个下一个制表位终止的地方。
假设制表符的终止位是固定的, 比如每隔n列就会出现一个制表符终止位。n应该作为变量还是符号常量呢?
#include <stdio.h>
#define TABINC 8
int main(int argc, char *argv[])
{
int c, nb, nt, pos;
nb = 0;
nt = 0;
for (pos = 1; (c = getchar()) != EOF; ++pos) {
if (c == ' ') {
if (pos % TABINC != 0)
++nb;
else {
nb = 0;
++nt;
}
} else {
for ( ; nt > 0; --nt)
putchar('\t');
if (c == '\t')
nb = 0;
else
for ( ; nb > 0; --nb)
putchar(' ');
putchar(c);
if (c == '\n')
pos = 0;
else if (c == '\t')
pos = pos + (TABINC - (pos-1) % TABINC) - 1;
}
}
return 0;
}