Qt各種字符轉(zhuǎn)換的實(shí)現(xiàn)示例
背景
由于Qt自己封裝了一層數(shù)據(jù)結(jié)構(gòu),無法與通用的C C++兼容,所以收集了一些平常用的轉(zhuǎn)換函數(shù)。
轉(zhuǎn)換
Qt int轉(zhuǎn)QString
int i = 5; QString s = QString::number(i);
Qt基礎(chǔ)-QString字母大小寫轉(zhuǎn)換
QString str = "hello"; str = str.toUpper(); //轉(zhuǎn)換為大寫HELLO str = str.toLower(); //轉(zhuǎn)換為小寫hello
QByteArray與char*的轉(zhuǎn)換
2.1 QByteArray 轉(zhuǎn) char* 方式1 傳統(tǒng)方式data()和size()函數(shù) (方便) QByteArray array(10, 'Q');//初始化 // 轉(zhuǎn)化 char *buf;//只是一個(gè)指針 int len;//buf的長(zhǎng)度 buf = array.data(); len = array.size(); 方式2 memcpy()方式 (靈活) QByteArray array(9,'Q'); char buf[10];//數(shù)組 int len_array = array.size(); int len_buf = sizeof(buf); int len = qMin( len_array, len_buf ); // 轉(zhuǎn)化 memcpy( buf, array, len );
2.QByteArray與int 以及int[] 的轉(zhuǎn)換 2.1. int 與 QByteArray 互轉(zhuǎn) [1] int 轉(zhuǎn) QByteArray // int 轉(zhuǎn) QByteArray int intVar = 199; QByteArray array; int len_intVar = sizeof(intVar); array.resize(len_intVar); memcpy(array.data(), &intVar, len_intVar); [2]QByteArray 轉(zhuǎn) int // QByteArray 轉(zhuǎn) int // array 數(shù)據(jù)接上面 int outIntVar; memcpy(&outIntVar, array.data(), len_intVar); //memcpy(&outIntVar, array, len_intVar);//此行代碼與上句通用
2.2. int[] 與 QByteArray 互轉(zhuǎn) [1] int[] 轉(zhuǎn) QByteArray // int[] 轉(zhuǎn) QByteArray // int[] 轉(zhuǎn) QByteArray int intVar[4] = {1,2,9,0};//初始化變量賦值 QByteArray array; int len_intVar = sizeof(intVar); array.resize(len_intVar); //轉(zhuǎn)換 int[] -> QByteArray memcpy(array.data(), &intVar, len_intVar); [2]QByteArray 轉(zhuǎn) int[] // QByteArray 轉(zhuǎn) int[] // array 數(shù)據(jù)接上面 int outIntVar[4]; memcpy(&outIntVar, array.data(), len_intVar); //memcpy(&outIntVar, array, len_intVar);//此行代碼與上句通用
3.QByteArray與float 以及float[] 的轉(zhuǎn)換 其實(shí)完全可以參考第3節(jié),int的用法. 3.1. float[] 與 QByteArray 互轉(zhuǎn) [1] float[] 轉(zhuǎn) QByteArray // float[] 轉(zhuǎn) QByteArray float fVar[4] = { 1.1, 2.3, 9.5, 0.2 };//初始化變量賦值 QByteArray array; int len_fVar = sizeof(fVar); // 4*4 = 16 (一個(gè)float占4個(gè)字節(jié)) array.resize(len_intVar); memcpy(array.data(), &fVar, len_fVar); [2]QByteArray 轉(zhuǎn) float[] // QByteArray 轉(zhuǎn) float[] float outFvar[4]; memcpy(&outIntVar, array.data(), len_fVar); //memcpy(&outFvar, array, len_fVar);//此行代碼與上句通用 3.2. float 與 QByteArray 互轉(zhuǎn) 可以安全參考int。
部分參考(Part of the reference)
1.大樹學(xué)長(zhǎng) QT開發(fā)之QByteArray各種類型轉(zhuǎn)換
到此這篇關(guān)于Qt各種字符轉(zhuǎn)換的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Qt 字符轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++?高精度乘法運(yùn)算的實(shí)現(xiàn)
本文主要介紹了C++?高精度乘法運(yùn)算的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01c語言中實(shí)現(xiàn)數(shù)組幾個(gè)數(shù)求次大值
這篇文章主要介紹了c語言中實(shí)現(xiàn)數(shù)組幾個(gè)數(shù)求次大值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12C++ 基本算法 冒泡法、交換法、選擇法、實(shí)現(xiàn)代碼集合
大家在學(xué)習(xí)C語言的時(shí)候,老師可能都會(huì)講的幾個(gè)算法,這里簡(jiǎn)單整理下,方便需要的朋友2013-04-04基于Qt制作一個(gè)定時(shí)關(guān)機(jī)的小程序
這篇文章主要為大家詳細(xì)介紹了如何基于Qt制作一個(gè)有趣的定時(shí)關(guān)機(jī)的小程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12