Работа с русскими символами - C (СИ) (148074)

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

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

Здравствуйте. Возникла такая проблема: у меня есть функция написанная на Си, для ввода только символов английского языка. Я хочу сделать так, чтоб и русские символы могли вводиться, только буквы ессесна. Добавлял код русских букв, что-то не шло -_-
void scanfss(char mas[30])
{
    char c;
    int i = 0;
    while (1)
    {
        do
        {
            c = _getch();
        } while (!(c >= 65 && c <= 90) && !(c >= 97 && c <= 122) && !(c>='а'&&c<='я') && !(c>='А'&&c<='Я') && c != '\r' && c != '\b');
 
        if (c != '\r' && c != '\b' && i != 30)
        {
            mas[i] = c;
            i++;
            printf("%c", c);
        }
        else if (c == '\b' && i != 0)
        {
            printf("\b \b");
            i--;
        }
        else if (c == '\r' && i != 0)
            break;
    }
    mas[i] = '\0';
    puts("\r");
}
Помогите, кто чем может. Или может в вижле где-то дело?

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

textual
Листинг программы
#include <ctype.h>
...
setlocale(LC_CTYPE, "Rus");
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
 
char c = _getch();
if (isalpha(c))
    puts("Буква");

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

  1. Подключение заголовочного файла для работы с функциями классификации символов.
  2. Установка локали на русскую с помощью функции setlocale(LC_CTYPE, Rus).
  3. Установка кодовой страницы консоли на 1251 с помощью функций SetConsoleCP(1251) и SetConsoleOutputCP(1251).
  4. Получение символа из консоли с помощью функции _getch().
  5. Проверка, является ли полученный символ буквой, с помощью функции isalpha().
  6. Вывод сообщения Буква, если символ является буквой.

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


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

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

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