源自《The C Programming Language》P102 pr5-11:
修改程序entab和detab(第一章练习中编写的函数),使它们接受一组作为参数的制表符停止位。如果启动程序时不带参数,
则使用默认的制表符停止位设置
代码:
#include <stdio.h>
#include <stdlib.h>
#define TABINC 8
int main(int argc, char* argv[])
{
int c;
int pos;
int nb;
int tab_inc;
pos = 1;
nb = 0;
if(argc == 1)
tab_inc = TABINC;
else
tab_inc = atoi(*++argv);
while((c = getchar()) != EOF)
if(c == '\t')
{
nb = tab_inc - (pos - 1) % tab_inc;
while(nb > 0)
{
putchar(' ');
++pos;
--nb;
}
}
else if(c == '\n')
{
putchar(c);
pos = 1;
}
else
{
putchar(c);
++pos;
}
return 0;
}
参考代码: