47 lines
999 B
C
47 lines
999 B
C
|
#include <stdio.h>
|
||
|
/* program detab
|
||
|
replaces tab in the input with the
|
||
|
proper number of blank spaces to
|
||
|
the next tab stop
|
||
|
|
||
|
assume a fixed set of tab stops,
|
||
|
say, every n columns */
|
||
|
|
||
|
#define MAXLINE 1000
|
||
|
#define COLPERTAB 8
|
||
|
|
||
|
int ggetline(char line[], int maxline){
|
||
|
int character, index;
|
||
|
for(index = 0; index < maxline - 1
|
||
|
&& (character = getchar()) != EOF
|
||
|
&& character != '\n'; index++){
|
||
|
line[index] = character;
|
||
|
}
|
||
|
line[index] = '\0';
|
||
|
return index;
|
||
|
}
|
||
|
|
||
|
int main(){
|
||
|
char line[MAXLINE];
|
||
|
int index, length, column, index2;
|
||
|
while ((length = ggetline(line, MAXLINE)) > 0){
|
||
|
column = index = 0;
|
||
|
while(index < length){
|
||
|
if (line[index] != '\t'){
|
||
|
putchar(line[index]);
|
||
|
column++;
|
||
|
}
|
||
|
if (line[index] == '\t'){
|
||
|
index2 = COLPERTAB - (column % COLPERTAB);
|
||
|
column += index2;
|
||
|
for(; index2 > 0; index2--){
|
||
|
putchar(' ');
|
||
|
}
|
||
|
}
|
||
|
index++;
|
||
|
}
|
||
|
putchar('\n');
|
||
|
}
|
||
|
return 0;
|
||
|
}
|