Пример #1
0
/* 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;
        }
}
Пример #2
0
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')
Пример #3
0
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;
		}
}
Пример #4
0
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;
        }
}
Пример #5
0
/* 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;
		}
	    }
	}
    }
}
Пример #6
0
/* 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;
    }
}
Пример #7
0
 /* 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;
         }
     }
 }
Пример #8
0
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 ++ ;
        }            
    }

}