练习1.20

来源:互联网 发布:阿里云 ace 编辑:程序博客网 时间:2024/05/21 13:52

编写程序,将输入中的制表符替换成适当数目的空格,使空格充满到下一个下一个制表位终止的地方。

假设制表符的终止位是固定的, 比如每隔n列就会出现一个制表符终止位。n应该作为变量还是符号常量呢?

 

#include <stdio.h>#define TABINC 8int 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;}


 

原创粉丝点击