C++ CSS HTML Java JavaScript MySQL Oracle PERL PHP SQL Unix VBScript XHTML XML Сети
Пример 3. Центрирование строк.
 
	/*	Пример 3	*/

/* Центрирование строк текста. Пример на работу с указателями. */
/* Входные строки не должны содержать табуляций	*/
/* Вызов: a.out < входной_файл	*/

<stdio.h>
extern char *gets();
#define WIDTH 60	/* ширина листа */
main(){
	char rd[81]; register char *s;
	char *head,	/* начало текста */
		*tail;	/* конец текста  */
	register int len, i;
	int shift;	/* отступ */

	 ){
		/* Строка пуста */
		putchar( '\n' ); continue;
		}
		/* пропуск пробелов в начале строки */
		for( s = rd; *s == ' ' ; s++ );
		if( ! *s ){
		/* Строка состоит только из пробелов */
		putchar( '\n' ); continue;
		}
		head = s;

		/* встать на конец строки */
		while( *s ) s++;

		/* искать последний непробел */
		s--;
		while( *s == ' ' && s != rd ) s--;
		tail = s;

		/* Длина текста */ len = (tail-head) + 1;
		/* разность указателей - целое */
		shift = (WIDTH - len)/2;
		if(shift < 0 ){
		fprintf(stderr, "Строка длиннее чем %d\n", WIDTH );
		shift = 0;
		}
		/* Печать результата */
		for( i=0; i < shift; i++ ) putchar( ' ' );

		while( head <= tail ) putchar( *head++ );
		putchar( '\n' );
	}
}

[Назад] [Содержание] [Вперед]

Главная