Напечатать текст, подчеркивая все заглавные и строчные русские буквы, входящие в него - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дан текст из 60 букв. Напечатать этот текст, подчеркивая (ставя минусы в соответствующих позициях следующей строки) все заглавные и строчные русские буквы, входящие в него.

Решение задачи: «Напечатать текст, подчеркивая все заглавные и строчные русские буквы, входящие в него»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <wchar.h>
  3. #include <locale.h>
  4. #include <stdlib.h>
  5.  
  6. #define RU L"АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
  7.  
  8. int main(void) {
  9.     wchar_t buf[BUFSIZ];
  10.    
  11.     if ( ! setlocale(LC_ALL, "ru_RU.UTF-8") ) {
  12.         perror("setlocale");
  13.         return 1;
  14.     }
  15.    
  16.     while ( printf("> ") && fgetws(buf, BUFSIZ, stdin) && *buf != L'\n' ) {
  17.         wchar_t * p = buf;
  18.        
  19.         printf("> ");
  20.         while ( *p )
  21.             printf("%c", ( wcschr(RU, towupper(*p++)) ) ? '-' : ' ');
  22.         printf("\n");
  23.     }
  24.    
  25.     return 0;
  26. }

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с широкими символами.
  2. Определение строки, которую необходимо выделить.
  3. Установка локали на русскую, чтобы корректно работать с русскими символами.
  4. Создание буфера для ввода строки.
  5. Проверка успешности установки локали, при неудаче выводится сообщение об ошибке и возвращается 1.
  6. Ввод строки с помощью fgetws.
  7. Проверка успешности ввода строки, при неудаче выводится сообщение об ошибке и возвращается 1.
  8. Выделение строки для выделения заглавных и строчных букв.
  9. Перебор каждого символа введенной строке.
  10. Проверка, является ли текущий символ заглавной или строчной буквой.
  11. Если символ является заглавной буквой, то к нему добавляется символ подчеркивания.
  12. Вывод полученной строки с выделением заглавных и строчных букв.
  13. Ввод новой строки.
  14. Цикл продолжается, пока пользователь не введет пустую строку.
  15. Возвращение 0 по окончании работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы