QString、string、char *相互に変換



Qstring String Char Convert Each Other



私のアプリケーション環境は、Xcode、QT、およびXcodeの組み合わせです。 黒は私が使用したものです、プロテストはできます

もう一つはブログを回すことです、誰もがそれを見ます。



1、QStringはcharに変換されます*

QString path Const char *c_str = path.toUtf8().constData() //Because QT defaults to Utf8

方法:(以下は他の誰かのもので、試したことはありません)



QString Qstr = 'テスト'

QByteArray ba = Qstr.toLatin1()

またはQByteArrayba = Qstr.toAscii()



Const char * c_str = ba.data()// Qtバージョンでconstを使用する必要があるのはなぜですか?

スマートなアプローチ:

char * chStr = NULL

QByteArray ba = str.toLatin1()

chStr =(char *)malloc(ba.length()+ 1)

memset(chStr、0、ba.length())

memcpy(chStr、ba.data()、ba.length())

chStr [ba.length()] = ' 0'

2、char *をQStringに変換

char *c_str = '123456789' QString string = QString(QLatin1String(c_str))

3、QStringはQChar(通常は保存する配列)に変換されます

方法:

const QChar * QString :: data()constを直接呼び出す

またはQChar * QString :: data()

例:QString str = '123cycy'

QChar * b =新しいQChar [7]

b = str.data()

b [0] 〜b [6]は対応する文字を読み取ることができます

4、QCharはQStringに変換されます

方法:

QString(QChar ch)を使用するだけです

またはQString :: append(QChar ch)

5、QCharはcharに変換されました

方法:

char QChar :: toLatin1()/ char QChar :: toAscii()constを使用します

char ch;

QChar Qch;

ch = QCh.toLatin1

6、charはQCharに変換されました

方法:

QChar(char ch)/ QChar(uchar ch)

7、QStringは数値に変換されます

方法:

QString :: toXXXシステム関数

8、数値はQStringに変換されます

方法:

QString :: number()

setNum()