编写一个程序 detab,用适当数量的空格替换输入中的制表符,以留出下一个制表位。 假设一组固定的制表位,比如每 n 列。 n 应该是变量还是符号参数?
每个n列放置一个制表符停止位,这里把TABINC定义成一个符号参数。
#include<stdio.h>
#include<stdlib.h>
#define TABINC 8
#define MaxParameter 100
int main()
{
char c,*argv[MaxParameter], **temp;
int nb, pos, argc;
temp = argv;
scanf("%d", &argc);
getchar();
for (int i = 1; i < argc; i++) {
argv[i] = (char *)malloc(MaxParameter * sizeof(char));
gets(argv[i]);
}
pos = 1;
while (--argc > 0 && *++temp) {
while ((c = *temp[0]++) != '\0')
{
if (c == '\t')
{
nb = TABINC - (pos - 1) % TABINC;
while (nb--)
putchar(' ');
pos = 1;
}
else {
putchar(c);
++pos;
}
}
putchar('\n');
pos = 1;
}
return 0;
}
|