Существует два способа решения вашей проблемы.
- Получить всю строку за один раз от пользователя
Чтобы прочитать всю строку, выможете использовать scanf
, как вы его используете.Он будет хранить всю строку в массиве (s
в вашем случае), а затем вы сможете анализировать этот массив и выполнять операции peform, как вы это делаете.Здесь ограничение будет длина строки.Вы можете принять строку размером MAX
только потому, что ваш массив такого размера.Если вы согласны с этим, тогда ваш код веренВсе, что вам нужно сделать, это удалить getChar()
из while
.
Чтение одного символа за раз .
Кроме того, вы можете прочитать один символ за раз от пользователя и немедленно выполнить операции над этим символом.В этом случае вам не нужно объявлять массив.Достаточно одной символьной переменной, и вы можете продолжать принимать данные от пользователя.В этом случае откажитесь от scanf()
и в вашем while()
, примите вывод getChar()
в одном символе и выполните вашу операцию.
PS В вашем while () есть одна маленькая ошибка, которая выдаст вас невернорезультат в нескольких случаях.