QT QString與char *之間的轉換

來源:互聯網
上載者:User

1.QString轉char
*

先將QString轉換為QByteArray,再將QByteArray轉換為char
*。

注意:不能用下面的轉換形式char *mm = str.toLatin1().data();。因為這樣的話,str.toLatin1()得到的QByteArray類型結果就不能儲存,最後轉換,mm的值就為空白。

 

2. char *
轉QString

可以使用QString的建構函式進行轉換:QString(const
QLatin1String &str);

QLatin1String的建構函式:QLatin1String(const
char *str);

則如下語句是將char * mm轉換為QString
str:

str = QString(QLatin1String(mm));

 

 

 

例子:

 

//#include "myclass.h"<br />#include <QtGui/QApplication><br />#include <QtDebug><br />#include <QString></p><p>int main(int argc, char *argv[])<br />{<br />QApplication a(argc, argv);</p><p>QString str = “hello”; //QString轉char *<br /> QByteArray ba = str.toLatin1();<br />char *mm = ba.data();<br />qDebug()<<mm<<endl; //調試時,在console中輸出</p><p> QString nn = QString(QLatin1String(mm)); //char *轉QString<br />qDebug()<<nn<<endl; //調試時,在console中輸出</p><p>//MyClass w;<br />//w.show();<br />return a.exec();<br />}</p><p>

 

進行調試,在console處輸出如下內容:

hello

hello

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.