Преобразование QString в char *

Модератор: Модераторы разделов

svas
Сообщения: 203

Преобразование QString в char *

Сообщение svas »

Как "QString" преобразовать в "char *" ? "(char *)some_var" не работает. Работает "(char *)some_var.toUtf8()" но я так понимаю что если на другом компьютере будет стоять не utf8 то будет работать неправильно.
Спасибо сказали:
un-defined
Сообщения: 145
ОС: Kubuntu, Gentoo

Re: Преобразование QString в char *

Сообщение un-defined »

toLocal8Bit? toAscii?
Don`t try - just do or do not ©Master Joda
Спасибо сказали:
Galaxy Master
Сообщения: 142
ОС: Debian GNU/Linux

Re: Преобразование QString в char *

Сообщение Galaxy Master »

un-defined писал(а):
22.01.2008 00:11
toLocal8Bit? toAscii?

Вот так
QString str = "sjkadhglajshg";
char *ptr = str.toAscii().data();
Спасибо сказали:
sja
Сообщения: 66
ОС: ubuntu, altlinux

Re: Преобразование QString в char *

Сообщение sja »

Очень просто!

QString str;
cout << str.toStdString().c_str() << endl;
Спасибо сказали:
un-defined
Сообщения: 145
ОС: Kubuntu, Gentoo

Re: Преобразование QString в char *

Сообщение un-defined »

sja писал(а):
26.01.2008 23:27
Очень просто!

QString str;
cout << str.toStdString().c_str() << endl;


А зачем в std::string перегонять? Лишние накладные расходы..
Don`t try - just do or do not ©Master Joda
Спасибо сказали:
vadiml
Сообщения: 446
ОС: fc12.x86_64

Re: Преобразование QString в char *

Сообщение vadiml »

str.toLatin1().data()
или
str.toUtf8().data()
если используется QT3_SUPPORT, то можно использовать
const char *ascii()
const char *latin1()
которые являются inline для
protected:
const char *ascii_helper();
const char *latin1_helper();
phenom x4 905e, asus m4a79 deluxe, 4 gb, ati x550, ati 4350, 2 x 17" LCD
Спасибо сказали: