編寫程序,將輸入中的製表符替換成適當數目的空格,使空格充滿到下一個下一個製表位終止的地方。
假設製表符的終止位是固定的, 比如每隔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;
}