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

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


咨詢
建站咨詢
