Member 13665115 Ответов: 1

Как подсчитать повторы символов с помощью getchar


Я пытаюсь написать программу на языке Си с помощью getchar (), которая выводит повторение символов в слове.
Например, если вход xxxyyyzzz, то выход должен быть 333 (так как каждый повторяется 3 раза), а если вход xxyzz, то он должен быть 212.

Я новичок, и это просто кажется мне слишком сложным.

Что я уже пробовал:

int nc ;
int count = 0;
for (nc=0 ; getchar()!=EOF;++nc) 
{
  printf ("%d",nc); 
}


Я пробовал работать с этой программой, но независимо от того, что она просто выводит общее количество символов, даже включая новую строку или ввод. Любые предложения будут оценены по достоинству ! Спасибо йои

1 Ответов

Рейтинг:
2

OriginalGriff

Это твое домашнее задание, так что я не дам тебе никакого кода!
Но... это не сложно:
1) добавьте переменную char с именем lastTime и установите для нее значение, возвращаемое getchar().
2) Добавьте целое число, называемое count, и установите его равным единице.
3) начните цикл (do...while, вероятно, хороший выбор)
3.1) считывание символа в переменную.
3.2) сравните новый символ с последним значением времени.
3.2.1) если они одинаковы, увеличьте количество
3.2.2) если они различны, то:
3.2.2.1) количество печатей и установите его равным единице
3.2.2.2) установите lastTime на новый символ
3.3) если вы находитесь в конце входного сигнала, выйдите из цикла.
4) после цикла выведите счет.


CPallini

5.