Top.Mail.Ru
Уведомления
Очистить все

[Решено] QString to char pointer

(@dima_unx)
Level 1

Здравствуйте, подскажите, как можно получить из QString указатель на char*, сделал так:

QString string = "string";
char* ptr = (char*)string .constData();

Но в итоге для каждого символа строки как будто получаю 2 байта, а не один. Не очень хорошо разбираюсь в вопросе, но возможно это связано с представлением данных в Unicode/ASCII. В общем задача получить данные так, чтобы для каждого символа был один байт и сохранить эти байты в массиве.


Цитата
Создатель темы Размещено : 13.03.2025 12:33
Метки темы
Aveal
(@aveal)
Top level Admin

Как вариант:

const char *	qPrintable(const QString &str)
const wchar_t *	qUtf16Printable(const QString &str)
const char *	qUtf8Printable(const QString &str)

Только надо учесть, что:

The char pointer will be invalid after the statement in which qPrintable() is used.
This is because the array returned by QString::toLocal8Bit() will fall out of scope.

ОтветитьЦитата
Размещено : 13.03.2025 14:43
(@dima_unx)
Level 1

@aveal похоже, что для моей задачи это то, что надо.


ОтветитьЦитата
Создатель темы Размещено : 13.03.2025 16:27
Aveal
(@aveal)
Top level Admin

Запись от: @dima_unx

@aveal похоже, что для моей задачи это то, что надо.

Отлично

 


ОтветитьЦитата
Размещено : 13.03.2025 16:49
Поделиться:
Обзор конфиденциальности

На этом сайте используются файлы cookie, что позволяет нам обеспечить наилучшее качество обслуживания пользователей. Информация о файлах cookie хранится в вашем браузере и выполняет такие функции, как распознавание вас при возвращении на наш сайт и помощь нашей команде в понимании того, какие разделы сайта вы считаете наиболее интересными и полезными.