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()