On-line: гостей 1. Всего: 1 [подробнее..]
Программисты всех стран, объединяйтесь!

АвторСообщение



ссылка на сообщение  Отправлено: 06.05.21 14:24. Заголовок: Вывод на консоль попарно символов строки.


Встретил на Stackoverflow такой вопрос.

Имеется, к примеру, строка "a1b2c3". Нужно в программе на C вывести подобную строку на консоль (или иной поток вывода) в виде

a1, 1b, b2, 2c, c3


К сожалению, вопрос был закрыт, и я не успел предоставить свое решение.

Задание простое, но, оказывается, даже такое простое задание не каждому сходу под силу. Некоторые опускают из виду, что если строка содержит только один символ, как, например, "a", то он тоже должен быть выведен на консоль как

a


А иначе может создаться впечатление, что строка вообще пустая.

Вот простое решение этого задания, оформленное в виде функции.

 
#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;
}

Вывод программы на консоль
 
a
a1, 1b
a1, 1b, b2, 2c, c3


Спасибо: 0 
ПрофильЦитата Ответить
Новых ответов нет


Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 23
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет