Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Malina от Январь 05, 2021, 05:35



Название: Преобразование букв кириллицы в цифры
Отправлено: Malina от Январь 05, 2021, 05:35
Пишу генератор случайных чисел привязанный к имени пользователя. Имя пишется кириллицей.
Пользователь вводит :
 QString FIO = ui->lineEdit_F ->text();

Необходимо взять первую букву имени и присвоить ей число, например, А=1... Я=32.
Как можно от строки отделить первую букву, определить ей численное значение и использовать дальше для расчетов?
Как заставить Qt работать с кириллицей?



Название: Re: Преобразование букв кириллицы в цифры
Отправлено: Fregloin от Январь 05, 2021, 12:46
Как вариант, использовать QMap<QChar,int> (std::map)

std::map<QChar,int> map = {
{ QChar('A'), 1 },
{ QChar('Б'), 2 },
 ...
{ QChar('Я'), 32}
};

for (const auto& current_char : string_value)
{
    const auto it = map.find(current_char);
    if (it != map.end())
    {
        int int_value = it->second; //нужное вам значение
    }
}



Название: Re: Преобразование букв кириллицы в цифры
Отправлено: Igors от Январь 05, 2021, 13:23
А почему не использовать просто значение уникода, напр
Код
C++ (Qt)
QString FIO = ui->lineEdit_F ->text();
int val = FIO[0].unicode();   // вот и число