Заменить каждую букву русского алфавита следующей за ней по алфавиту - C (СИ)

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

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

В тексте заменить каждую букву русского алфавита следующей за ней по алфавиту

Решение задачи: «Заменить каждую букву русского алфавита следующей за ней по алфавиту»

textual
Листинг программы
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
#include <assert.h>
 
#define RUS_UPPER L"АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
#define RUS_LOWER L"абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
#define RUS_COUNT (33)
 
int main(void) {
    wchar_t buf[BUFSIZ], * p, * f;
    
    assert ( setlocale(LC_ALL, "ru_RU.UTF-8") );
    
    while ( printf("Строка: ") && fgetws(buf, BUFSIZ, stdin) && *buf != L'\n' ) {
        for ( p = buf; *p; ++p ) {
            if ( f = wcschr(RUS_UPPER, *p) )
                *p = ( ++f >= RUS_UPPER + RUS_COUNT ) ? *RUS_UPPER : *f;
            else if ( f = wcschr(RUS_LOWER, *p) )
                *p = ( ++f >= RUS_LOWER + RUS_COUNT ) ? *RUS_LOWER : *f;
        }
        printf("Результат: %ls", buf);
    }
    
    return 0;
}

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

  1. Включаются необходимые заголовочные файлы для работы с C
  2. Определены две строки, содержащие русский алфавит в верхнем и нижнем регистре, соответственно
  3. Определено константное значение, равное количеству букв в русском алфавите
  4. В функции main создается указатель на широкую строку и инициализируется массив широких символов
  5. Устанавливается локальная настройка на русский язык с использованием UTF-8 кодировки
  6. В цикле запрашивается ввод строки от пользователя
  7. Внутренний цикл проходит по каждому символу введенной строки
  8. Для каждого символа ищутся соответствующие символы в верхнем и нижнем алфавите
  9. Если найден соответствующий символ в верхнем алфавите, то заменяем текущий символ на следующий по алфавиту символ
  10. Если найден соответствующий символ в нижнем алфавите, то заменяем текущий символ на следующий по алфавиту символ
  11. Выводим измененную строку на экран
  12. После завершения ввода всех строк, программа завершается

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


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

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

10   голосов , оценка 4.3 из 5
Похожие ответы