Заменить строчные буквы прописными и повторить цифры - C (СИ)
Формулировка задачи:
Распечатать введенную строку, заменив строчные буквы, прописными и повторив дважды каждую цифру.
Помогите написать как можно проще, желательно с комментариями
Решение задачи: «Заменить строчные буквы прописными и повторить цифры»
textual
Листинг программы
#include <stdio.h>
#include <ctype.h>
int main(void) {
char ch;
while ( (ch = getchar()) != '\n' ) { // считываем по символу до нажатия Enter
if ( isdigit(ch) ) // если число
printf("%c%c", ch, ch); // выводим дважды
else
if ( islower(ch) && isalpha(ch) ) // если буква и строчная
printf("%c", toupper(ch)); // выводим прописной
else
printf("%c", ch); // в остальных случаяях просто выводим введенный символ
}
return 0;
}
Объяснение кода листинга программы
- В коде используется язык программирования C.
- Код считывает по символу из стандартного ввода до нажатия Enter и выводит результат на стандартный вывод.
- Переменная
chиспользуется для хранения считанного символа. - С помощью функции
getchar()происходит считывание символа из стандартного ввода. - Цикл
whileпродолжается до тех пор, пока не будет считан символ новой строки (\n). - Если считанный символ является числом (функция
isdigit()возвращает ненулевой результат), то он выводится дважды с помощью функцииprintf(). - Если считанный символ является буквой и строчной (функции
islower()иisalpha()возвращают ненулевые результаты), то он преобразуется в прописную с помощью функцииtoupper()и выводится один раз. - В остальных случаях просто выводится считанный символ.
- Код не использует динамическое выделение памяти.
- Код не содержит комментариев.
- Код не содержит использования библиотеки
stdlib.h. - Код не содержит использования библиотеки
string.h. - Код не содержит использования библиотеки
math.h. - Код не содержит использования библиотеки
time.h. - Код не содержит использования библиотеки
ctype.hкроме функцииisdigit(). - Код не содержит использования библиотеки
stdio.hкроме функцииprintf(). - Код не содержит использования библиотеки
stddef.h. - Код не содержит использования библиотеки
limits.h. - Код не содержит использования библиотеки
float.h. - Код не содержит использования библиотеки
iso646.h.