Задать вопрос

C++ как изменить кодировку строки?

С++. Есть необходимость работать с конкретными символами переменных типа string.
В переменной могут содержатся буквы русского алфавита. Я понял что они занимают не один (как английские) а два байта.
Нужно, например, вывести букву из строки:
#include <QCoreApplication>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    string s = "Абракадабра";
    cout << s[3] << endl;

    return a.exec();
}

Логично что выводится знак вопроса.
Т. е. нужна строка с однобайтовой кодировкой.
Как можно преобразовать строку для такой задачи?
В сети встречал документацию, но для меня не очень понятную. Хотелось бы объяснения на простых примерах.
Используется QT Creator на Ubuntu Linux.
Спасибо!
  • Вопрос задан
  • 5178 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Нетология
    Специалист по информационной безопасности + нейросети
    12 месяцев
    Далее
  • Компьютерная академия «TOP»
    Учебная программа “Разработка программного обеспечения”
    30 месяцев
    Далее
Решения вопроса 1
BuriK666
@BuriK666
Компьютерный псих
Если используете Qt, то и используйте QString.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
1kachan
@1kachan
#include <QString>
#include <QDebug>
int main(int argc, char *argv[])
{
    QString str = QString::fromUtf8("Азазаза");
    qDebug() << str.length();
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы