Коды русских символов (не в консоли)

152
05 октября 2021, 09:00

Есть строка, нужно перевести русские символы в ней на аналогичные английские (А на А, В на В, ... , У на Y и тд - всего 12 символов, которые используются в автомобильных номерах). Проблема в том, что русские символы не распознаются по своему коду, а при попытке получить код символа - код отрицательный. Просто в качестве примера:

int russian_upper_y = 147;
char same_russian_upper_y = 'У';
cout << char(russian_upper_y) << " - получение символа по коду"; //выводит "
cout << int(same_russian_upper_y) << "- получение кода по символу"; //выводит -45
cout << same_russian_upper_y << " - вывод символа"; //выводит У

Далее в чем проблема: Если строку инициализируешь сразу после объявления, то коды символов все равно отрицательные, символ по его реальному коду программа не видит.

string hello = "привет";
cout << int(hello[0]) << endl;
if (hello[0] == 'п') cout << "один" << endl;
if (int(hello[0]) == 175) cout << "два";
if (int(hello[0]) == -17) hello.replace(hello.find('п'), 1, "L");
cout << hello;

Вывод консоли в данном случае выглядит так:

-17
один
Lривет

Если ту же строку ввожу с консоли c помощью getline(), то получаю на выходе:

-81
*а на второй строке рандомный набор символов*

Собственно, вопрос, как сделать так, чтобы можно было беспрепятственно заменить некоторые русские символы на похожие по написанию английские и в чем проблема Visual Studio, выводящего отрицательные коды символов? Как пример того, что нужно сделать: С клавиатуры вводится номер, пусть У345МО. Мне нужно заменить У на Y и М, О на М, О английские и далее уже искать по базe.

READ ALSO
c++ написал прогу по фану а там

c++ написал прогу по фану а там

написал прогу по фану на с++ а она почему то не вызывает ошибку 0_0

102
Как вызвать два метода по клику в Vue Js

Как вызвать два метода по клику в Vue Js

В разработке приложения я использую vue cli у меня есть такой код

217
Как сделать ожидание ответа от клиента

Как сделать ожидание ответа от клиента

У меня есть логика проверки пользователя

110