新聞中心
qt怎樣將字符串轉(zhuǎn)化為16進制?
回答如下:可以使用QString的toUtf8()函數(shù)將字符串轉(zhuǎn)換為UTF-8編碼的字節(jié)數(shù)組,然后使用QByteArray的toHex()函數(shù)將字節(jié)數(shù)組轉(zhuǎn)換為16進制字符串。示例代碼如下:

公司主營業(yè)務:網(wǎng)站設計、網(wǎng)站建設、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出賈汪免費做網(wǎng)站回饋大家。
```cpp
QString str = "hello world";
QByteArray byteArray = str.toUtf8();
QString hexStr = byteArray.toHex();
qDebug() << hexStr; // 輸出 68656c6c6f20776f726c64
```
另外,如果想要將一個十進制的整數(shù)轉(zhuǎn)換為16進制字符串,可以使用QString的setNum()函數(shù),第二個參數(shù)設置為16即可。示例代碼如下:
```cpp
int num = 255;
QT3中怎么實現(xiàn)QString與char*的轉(zhuǎn)換?
Qt下面,字符串都用QString,確實給開發(fā)者提供了方便,想想VC里面定義的各種變量類型,而且函數(shù)參數(shù)類型五花八門,經(jīng)常需要今年新那個類型轉(zhuǎn)換Qt再使用第三方開源庫時,由于庫的類型基本上都是標準的類型,字符串遇的多的就是Char*類型在Qt下怎樣將QString轉(zhuǎn)char*呢,需要用到QByteArray類,QByteArray類的說明詳見Qt幫助文檔。
因為char*最后都有一個‘/0’作為結(jié)束符,而采用QString::toLatin1()時會在字符串后面加上‘/0’
方法如下:Qstring str;char* ch;QByteArray ba = str.toLatin1(); ch=ba.data();這樣就完成了QString向char*的轉(zhuǎn)化。經(jīng)測試程序運行時不會出現(xiàn)bug注意第三行,一定要加上,不可以str.toLatin1().data()這樣一部完成,可能會出錯。 補充:以上方法當QString里不含中文時,沒有問題,但是QString內(nèi)含有中文時,轉(zhuǎn)換為char*就是亂碼,采用如下方法解決:
方法1:添加GBK編碼支持:
#include
;QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));然后改變上面的第三行為:QByteArray ba = str.toLoacl8Bit(); toLoacl8Bit支持中文方法2:先將QString轉(zhuǎn)為標準庫中的string類型,然后將string轉(zhuǎn)為char*,如下:
std::string str = filename.toStdString();const char* ch = str.c_str();
到此,以上就是小編對于qt怎么提取字符串中的數(shù)字和字母的問題就介紹到這了,希望這2點解答對大家有用。
文章標題:qt怎么提取字符串中的數(shù)字
文章分享:http://www.5511xx.com/article/dpejsco.html


咨詢
建站咨詢
