Форум » C/C++ для начинающих (C/C++ for beginners) » Вывод на консоль попарно символов строки. » Ответить

Вывод на консоль попарно символов строки.

Сыроежка: Встретил на Stackoverflow такой вопрос. Имеется, к примеру, строка "a1b2c3". Нужно в программе на C вывести подобную строку на консоль (или иной поток вывода) в виде [pre2]a1, 1b, b2, 2c, c3[/pre2] К сожалению, вопрос был закрыт, и я не успел предоставить свое решение. Задание простое, но, оказывается, даже такое простое задание не каждому сходу под силу. Некоторые опускают из виду, что если строка содержит только один символ, как, например, "a", то он тоже должен быть выведен на консоль как [pre2]a[/pre2] А иначе может создаться впечатление, что строка вообще пустая. Вот простое решение этого задания, оформленное в виде функции. [pre2] #include <stdio.h> FILE * output( const char *s, FILE *fp ) { if ( *s ) { fputc( *s++, fp ); } while ( *s ) { fputc( *s, fp ); if ( *++s ) { fprintf( fp, ", %c", *( s - 1 ) ); } } return fp; } int main(void) { char *s = "a"; fputc( '\n', output( s, stdout ) ); s = "a1b"; fputc( '\n', output( s, stdout ) ); s = "a1b2c3"; fputc( '\n', output( s, stdout ) ); return 0; }[/pre2] Вывод программы на консоль [pre2] a a1, 1b a1, 1b, b2, 2c, c3[/pre2]

Ответов - 0



полная версия страницы