twentieth exercise
This commit is contained in:
parent
e3a93001ef
commit
00efba9193
|
@ -0,0 +1,46 @@
|
|||
#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;
|
||||
}
|
Loading…
Reference in New Issue