Преобразование регистра русских символов - C (СИ)

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

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

int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    char s[32];
    int len, i;
    printf("Введите строку:\n");
    gets(s);
    len = strlen(s);
    for(i=0; i<len; i++)
    {
        if (isalpha(s[i])) s[i] = toupper(s[i]);
    }
    printf("%s", s);
    return 0;
}
Данный код преобразует нижний регистр в верхний. НО только с английскими символами. Когда ввожу русские- ничего не происходит. Препод сказал, что есть специальный инклуд, при котором тот же самый код работает и для русских символов. Кто-нибудь знает, что за инклуд, я не нашёл. Помогите, пожалуйста!

Решение задачи: «Преобразование регистра русских символов»

textual
Листинг программы
#include <locale.h>
setlocale(LC_ALL, "");

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

  1. Подключается заголовочный файл , который содержит определения для работы с локалью.
  2. Устанавливается локаль с помощью функции setlocale(LC_ALL, ), где первый аргумент — это тип локали (LC_ALL), а второй аргумент — это строка, которая указывает, какую локаль нужно установить. В данном случае пустая строка означает, что нужно установить текущую локаль. Важно отметить, что этот код предполагает, что задача заключается только в установке локали и не содержит других действий.

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


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

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

9   голосов , оценка 4.556 из 5