В моей задаче домашнего задания мой инструктор хочет, чтобы мы написали программу, которая будет печатать строку за символом в новых строках, но будет игнорировать пробелы и печатать повторяющиеся символы в той же строке. Так, например, печать «Hello World» char по char вернет
H
e
ll
o
W
o
r
l
d
Я смог получить свой код для печати строкового символа за символом, но не смог распечатать дубликаты на том же самомлиния или игнорировать пробелы. Я посмотрел на некоторые другие подобные вопросы, и кажется, что это не тривиальная задача.
#include <stdio.h>
void print_string(const char instring[]);
int main(void)
{
print_string("Hello World");
return 0;
}
void print_string(const char *instring)
{
while(*instring!='\0')
{
printf("%c\n",*instring++);
}
return;
}
При этом каждая буква будет возвращаться примерно так:
H
e
l
l
o
W
o
r
l
d
Но не в нужном порядке. Я думал о реализации цикла do while, чтобы игнорировать пробелы, но что касается печати повторяющихся букв в той же строке, я озадачен. Также, если вам интересно, почему я использую указатели, предыдущей частью нашей домашней работы была печать длины строки с использованием арифметики с указателями. Не уверен, что переделать его без указателей будет проще.