Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
26 / 26 / 26
Регистрация: 01.10.2015
Сообщений: 175
1

Как получить ASCII русской буквы

11.01.2016, 20:37. Показов 4579. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, подскажите как получить код ASCII русской буквы?
К примеру
C++
1
std::cout << static_cast<int>('а') // a-русская буква
выдает 53424 вместо 176. Подскажите как это сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.01.2016, 20:37
Ответы с готовыми решениями:

Графический символ ASCII в русской локали (консоль)
Здравствуйте, нужно вывести символ \xB2 (заштрихованный прямоугольник) так все работает, но если...

Как получить цифровой код нажатой клавиши в русской раскладке?
Как получить цифровой код нажатой клавиши в русской раскладке?

Проверка регистра русской буквы
Здравствуйте! Мне нужно проверить регистр русской буквы. Нашел вот такие функции: islower() и...

Регулярные выражения и поиск русской буквы
Код должен искать, есть ли в файле строка начинающаяся с букв Т (рус. и англ.). Обязательно с...

7
33 / 5 / 1
Регистрация: 05.01.2016
Сообщений: 16
11.01.2016, 20:53 2
ASCII всегда содержит только латинские символы(еще цифры, спец.символы и управляющие символы).
Ваш файл, в котором вы набираете код, находится в кодировке UTF-8.
http://unicode-table.com/ru/0430/
Варианта два:
1) сохранить/сконвертировать файл исходника(*.cpp) в кодировку cp1251(176 - это код из неё).
2) продолжать использовать UTF-8
1
337 / 185 / 80
Регистрация: 22.08.2013
Сообщений: 724
11.01.2016, 21:13 3
Цитата Сообщение от gauss_2014 Посмотреть сообщение
в кодировку cp1251(176 - это код из неё)
С чего бы это? В cp1251, русская 'а' - 224 (E0).

Добавлено через 1 минуту
Цитата Сообщение от Default_070 Посмотреть сообщение
выдает 53424 вместо 176.
А так?
C++
1
std::cout << static_cast<int>((unsigned char)'а'); // a-русская буква
1
33 / 5 / 1
Регистрация: 05.01.2016
Сообщений: 16
11.01.2016, 21:27 4
176 - второй байт буквы 'a' в UTF-8 кодировке(208 176).
1
337 / 185 / 80
Регистрация: 22.08.2013
Сообщений: 724
11.01.2016, 21:31 5
Цитата Сообщение от gauss_2014 Посмотреть сообщение
176 - второй байт буквы 'a' в UTF-8 кодировке(208 176).
176 - это только часть кода.
Ну, и? cp1251 здесь при чём?
1
33 / 5 / 1
Регистрация: 05.01.2016
Сообщений: 16
11.01.2016, 21:33 6
Не при чем.
Я к тому что кодировка мультибайтная, а взятие кода одного байта - намек на неправильную работу с кодировкой.
1
337 / 185 / 80
Регистрация: 22.08.2013
Сообщений: 724
11.01.2016, 21:44 7
Цитата Сообщение от gauss_2014 Посмотреть сообщение
Не при чем.
Тогда не нужно так писать:
Цитата Сообщение от gauss_2014 Посмотреть сообщение
в кодировку cp1251(176 - это код из неё)
Непонятно, почему ТС, вообще, ждёт 176.

Добавлено через 2 минуты
Default_070, у тебя среда какая?
1
26 / 26 / 26
Регистрация: 01.10.2015
Сообщений: 175
12.01.2016, 12:56  [ТС] 8
Всем спасибо за ответы. Нужно преобразовывать в unsigned char.
0
12.01.2016, 12:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2016, 12:56
Помогаю со студенческими работами здесь

Удалить слова, начинающиеся с русской буквы А
помогите с задачей...я не мозг((( Составить программу обработки строк на языке Турбо Паскаль....

как получить код ASCII на JScript?
перерыл MSDN и весь форум, но нашел лишь: str.charCodeAt(i); //Return Unicode value of the...

как получить код символа в ASCII?
как получить код символа в ASCI?

Почему из-за русской буквы, стоящей после .+? неправильно работает RE?
Привет! Почему из-за русской буквы, стоящей после .+? неправильно работает RE? Дома в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru