Работа с русскими символами - 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("Буква");
Объяснение кода листинга программы
- Подключение заголовочного файла
для работы с функциями классификации символов. - Установка локали на русскую с помощью функции setlocale(LC_CTYPE,
Rus
). - Установка кодовой страницы консоли на 1251 с помощью функций SetConsoleCP(1251) и SetConsoleOutputCP(1251).
- Получение символа из консоли с помощью функции _getch().
- Проверка, является ли полученный символ буквой, с помощью функции isalpha().
- Вывод сообщения
Буква
, если символ является буквой.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д