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.
Спасибо!
  • Вопрос задан
  • 5146 просмотров
Решения вопроса 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();
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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