/* entab: replace strings of blanks with tabs and blanks */ void entab(char *tab){ int c, pos; int nb = 0; int nt = 0; for(pos = 1; (c = getchar()) != EOF; pos++) if(c == ' '){ if(tabpos(pos, tab) == NO) ++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') while(tabpos(pos, tab) != YES) ++pos; } }
void detab(char *tab) { int c,pos=1; while((c=getchar())!=EOF) if(c=='\t') { do putchar(' '); while(tabpos(pos++,tab)!=YES)/*打印空格直到tab结束位*/ } else if(c=='\n')
void detab(char *tab) { while ((c = getchar()) != EOF) if (c == '\t') { do putchar(' '); while (tabpos(pos++, tab) != YES); }else if (c == '\n'){ putchar(c); pos = 1; }else { putchar(c); ++pos; } }
void detab(char *tab) { int c, pos = 1; while ((c = getchar()) != EOF) if (c == '\t') { /* tab character */ do putchar(' '); while(tabpos(pos++, tab) != YES); } else if (c == '\n') { /* newline character */ putchar(c); pos = 1; } else { /* all other characters */ putchar(c); ++pos; } }
/* entab: replace strings of blanks with tabs and blanks */ void entab(char *tab) { int c, pos; int nb = 0; /* # of blanks necessary */ int nt = 0; /* # of tabs necessary */ for (pos = 1; (c = getchar()) != EOF; pos++) { if (c == ' ') { if (tabpos(pos, tab) == NO) { ++nb; /* increment # of blanks */ } else { nb = 0; /* reset # of blanks */ ++nt; /* one more tab */ } } else { for ( ; nt > 0; nt--) { putchar('\t'); /* output tab(s) */ } if (c == '\t') { /* forget the blank(s) */ nb = 0; } else { /* output blank(s) */ for ( ; nb > 0; nb--) { putchar(' '); } } putchar(c); if (c == '\n') { pos = 0; } else if (c == '\t') { while (tabpos(pos, tab) != YES) { ++pos; } } } } }
/* detab: преобразует символы табуляции из 'from' в пробелы 'to' */ void detab(char to[], char from[]) { int i, j; int tabstops[MAXLINE]; settabs(tabstops); i = j = 0; while ((to[j] = from[i++])) { if (to[j] == '\t') { do { to[j++] = ' '; } while (!tabpos(j, tabstops)); } else ++j; } }
/* detab: преобразует символы табуляции в пробелы */ void detab(int tabstops[]) { int col = 0; char c; while ((c = getchar()) != EOF) { if (c == '\t') { do putchar(' '); while (!tabpos(++col, tabstops)); } else if (c == '\n') { putchar(c); col = 0; } else { putchar(c); ++col; } } }
void detab ( char * detabbed_line, char * source_line ) { int pos = 0; while ( * source_line != EOF ) { if ( * source_line == '\t' ) { do { * detabbed_line = ' '; printf ( "putted detabbed_line = '%c', pos = %d;\n", * detabbed_line, pos ); * detabbed_line ++; pos ++; } while ( ( ! tabpos ( pos, tabline ) ) && pos < MAX ); // pos ++; * source_line ++; printf ( "step up;\n" ); } else { * detabbed_line ++ = * source_line ++ ; } } }