女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > > 充電吧
[導(dǎo)讀]QString 類是 Qt 中用于表示字符串的類,實(shí)現(xiàn)在 QtCore 共享庫中。QString 類在實(shí)現(xiàn)上有以下特征。1)字符串采用 Unicode 內(nèi)部編碼,可以表示世界上大多數(shù)語言的文字。2)字

QString 類是 Qt 中用于表示字符串的類,實(shí)現(xiàn)在 QtCore 共享庫中。QString 類在實(shí)現(xiàn)上有以下特征。

1)字符串采用 Unicode 內(nèi)部編碼,可以表示世界上大多數(shù)語言的文字。

2)字符串的存儲有引用計(jì)數(shù),當(dāng)一個 QString 對象被復(fù)制為另一個 QString 對象時,它們實(shí)際上指向相同的存儲空間,僅僅是增加一個引用計(jì)數(shù)。

?3)采用 “按需復(fù)制” 的技術(shù),當(dāng)指向相同存儲空間的多個 QString 對象中的一個要被修改時,將真正復(fù)制一個新的字符串并進(jìn)行修改。


構(gòu)造

QString 類提供了很多不同原型的構(gòu)造函數(shù)以方便使用。如:



Qstring();????????????????????????????????????????//?構(gòu)造空字符串
QString(QChar?ch);???????????????????????????//?由?QChar?對象?ch構(gòu)造
QString(const?QChar?*pch,?int?size);????//?由?QChar?數(shù)組pch構(gòu)造,size?是數(shù)組大小
QString(const?QString?&obj);??????????????//?拷貝構(gòu)造函數(shù)
QString(const?char?*str);??????????????????//??由字符串?str?構(gòu)造,str是一個普通字符串



由于存在這些構(gòu)造函數(shù),凡是可以用 QString 類作為參數(shù)的地方,都可以安全地使用 QChar 對象或普通的字符串。



判斷?

可以用下面的成員函數(shù)判斷 QString 對象是否為空字符串:



bool?isEmpty()?const;????//?判斷是否為空字符串



轉(zhuǎn)換

QString 類提供了很多函數(shù)用于將字符串轉(zhuǎn)換為數(shù)值,如:



double?toDouble(bool?*ok?=?0)?const;?????????????????????????????????????//?轉(zhuǎn)換為高精度浮點(diǎn)數(shù)
float?toFloat(bool?*ok?=?0)?cosnt;??????????????????????????????????????????//?轉(zhuǎn)換為浮點(diǎn)數(shù)
int?toInt(bool?*ok,?int?base?=?10)?const;?????????????????????????????????//?轉(zhuǎn)換為整型數(shù)
long?toLong(bool?*ok,?int?base?=?10)?cosnt;????????????????????????????//?轉(zhuǎn)換為長整型
short?toShort(bool?*ok,?int?base?=?10)?const;??????????????????????????//?轉(zhuǎn)換為短整型
uint?toUInt(bool?*ok?=?0;?int?base?=?10)?const?????????????????????????//?轉(zhuǎn)換為無符號整型數(shù)
ulong?toLong(bool?*ok?=?0,?int?base?=?10)?const;?????????????????????//?轉(zhuǎn)換為無符號長整型數(shù)?
ushort?toUShort(bool?*ok?=?0,?int?base?=?10)?const;?????????????????//?轉(zhuǎn)換為無符號短整型數(shù)



這些函數(shù)能夠解析 QString 對象的內(nèi)容,將其轉(zhuǎn)換為相應(yīng)的數(shù)值。其中 ok 參數(shù)指向一個 bool 型變量, 這個參數(shù)用于輸出轉(zhuǎn)換是否成功的信息。base參數(shù)則是轉(zhuǎn)換為整數(shù)類型時的基。這些函數(shù)都不會改變 QString 對象自身。?



注意: 當(dāng)字符串以 0x開頭時,轉(zhuǎn)換的基自動轉(zhuǎn)換為16, 當(dāng)字符串以0開頭時,轉(zhuǎn)換的基自動為8。


下面這些成員函數(shù)可以將一個數(shù)值轉(zhuǎn)換為字符串并設(shè)為 QString 對象的值:



QString?&setNum(int?n,?int?base?=?10);???????????????????????????????????????????//?整型數(shù)
QString?&setNum(uint?n,?int?base?=?10);?????????????????????????????????????????//?無符號整型數(shù)
QString?&setNum(long?n,?int?base?=?10);????????????????????????????????????????//?長整型
QString?&setNum(ulong?n,?int?base?=?10);???????????????????????????????????????//?無符號長整型數(shù)
QString?&setNum(short?n,?int?base?=?10);???????????????????????????????????????//?短整型數(shù)
QString?&setNum(ushort?n,?int?base?=?10);??????????????????????????????????????//?無符號短整型數(shù)
QString?&setNum(double?n,?char?format?=?'g',?int?precision?=?6);??????????//?高精度浮點(diǎn)數(shù)
QString?&setNum(float?n,?char?format?=?'g',?int?precision?=?6);????????????//?浮點(diǎn)數(shù)


? ? ? ?將浮點(diǎn)數(shù)轉(zhuǎn)換為字符串時,format 參數(shù)指定轉(zhuǎn)化格式,precision 參數(shù)指定轉(zhuǎn)換結(jié)果的精度,既有效數(shù)組的個數(shù)。注意這些函數(shù)會改變 QString 對象本身的值,而以下的函數(shù)則采用了不同的做法,它們返回一個新的臨時對象以供使用:




QString?number(int?n,?int?base?=?10);
QString?number(uint?n,?int?base?=?10);
QString?number(long?n,?int?base?=?10);
QString?number(ulong?n?,int?base?=?10);
QString?number(double?n,?char?format?=?'q',?int?precision?=?6);



這些函數(shù)都是靜態(tài)成員函數(shù),因而與某個具體的對象無關(guān),可以直接通過類名調(diào)用。



QString 類也提供了大小寫轉(zhuǎn)換的函數(shù),如:



QString?toLower()?const;????//?轉(zhuǎn)換為小寫
QString?toUpper()?const;????//?轉(zhuǎn)換為大寫



這些函數(shù)都不會改變 QString 對象本身,而是將轉(zhuǎn)換后的結(jié)果作為返回值。



比較

QString 類提供了一個函數(shù)用于兩個 QString 對象的比較:



int?compare(const?QString?&s1,?const?QString?&s2,?Qt::CaseSensitivity?cs?=?Qt::CaseSensitive);


這是一個靜態(tài)成員函數(shù),它可以比較 s1 和 s2 的大小,參數(shù) cs 有以下兩個取值。




Qt::CaseInsensitive:?表示對大小寫不敏感
Qt::Casesensitive?:????表示對大小寫敏感



返回值的含義如下:大于 0 表示 s1 大于 s2,等于 0 表示 s1 等于 s2, 小于 0 表示 s1 小于 s2。


為了方便使用,QString 類還提供了以下重載函數(shù)用于比較:



int?compare(const?QString?&other,?Qt::CaseSensitivity?cs?=?Qt::CaseSensitive)?const;



這個函數(shù)用于比較 QString 對象自身和 QString 對象 other。


實(shí)際上更為直觀的是使用 QString 類的比較操作符,如



bool?operator?<?(StringType?other)?const;????????//?比較是否小于?other人
bool?operator??(StringType?other)?constt;???????//?比較是否大于?other
bool?operator?>=?(StringType?other)?const;??????//?比較是否大于等于?other
bool?operator?!=?(StringType?other)?const;???????//?比較是否不等于?other


? ? ? 這里的 StringType 指的是 (const QString &)或 (const char *),哥也就是說,這些操作副既可以與 QString 對象比較,也可以與普通的字符串比較。它們的局限性是第一個操作數(shù)必須是 QString 對象,因此,Qt 中又定義了以下操作符:




bool?operator?<?(const?char?*s1,?const?QString?&s2);?????????????????//?比較?s1?是否小于?s2
bool?operator??(const?char?*s1,?const?QString?&s2);?????????????????//?比較?s1?是否大于?s2
bool?operator?>=?(const?char?*s1,?const?QString?&s2);???????????????//?比較?s1?是否大于等于?s2
bool?operator?!=?(const?char?*s1,?const?QString?&s2);????????????????//?比較?s1?是否不等于?s2



這些操作符不是 QString 類的成員,它們的第一個參數(shù)是普通字符串。


? ? ? ??

?查找
?用以下的成員函數(shù)可以判斷 QString 對象是否包含指定的字符串或字符:



bool?contains(const?QString?&str,?Qt::CaseSensitivity?cs?=?Qt::CaseSensitive)?const;??????
bool?contains(cosnt?ch,?Qt::CaseSensitivity?cs?=?Qt::CaseSensitive)?const;


用以下的成員函數(shù)可以得到 QString 對象包含某個特定字符串或字符的個數(shù):




int?count(const?QString?&str,?Qt::CaseSensitivity?cs?=?Qt::CaseSensitive)?const;
int?count(QChar?ch,?Qt::CaseSensitivity?cs?=?Qt::CaseSensitive)?const;



?用以下的成員函數(shù)可以得到 QString 對象中某個特定字符串或字符出現(xiàn)的位置:



int?indexOf(const?QString?&str,?int?from?=?0,?Qt::CaseSensitivity?cs?=?Qt::CaseSensitive)?const;
int?indexOf(QChar?ch,?int?from?=?0,?Qt::CaseSensitivity?cs?=?Qt::CaseSensitive)?const;


? ? ? ? 這里參數(shù) from 是查找的起點(diǎn),它可以為負(fù)數(shù),-i 表示倒數(shù)第i個字符。查找的方向是從前往后。返回值是查找到的字符串或字符的位置,如果沒有找到則返回 -1。



? ? ? ? QString 類中還有與此功能相似的函數(shù)用于從后往前查找字符串或字符:


int?lastIndexOf(const?QString?&str,?int?from?=?-1,?Qt::CaseSensitivity?cs?=?Qt::CaseSensitive)?const;
int?lastIndexOf(QChar?ch,?int?from?=?-1,?Qt::CaseSensitivity?cs?=?Qt::CaseSensitive)?const


?? ? 字符串處理

? ? ? ? QString ?類支持用賦值操作符進(jìn)行對象的復(fù)制,其賦值操作符的聲明如下:


QString?&operator?=?(const?QString?&other);????????//?復(fù)制另外一個?QString?對象
QString?&operator?=?(const?char?*str);???????????????//?復(fù)制普通字符串
QString?&operator?=?(char?ch);?????????????????????????//?復(fù)制字符
QString?&operator?=?(QChar?ch);???????????????????????//?復(fù)制?QChar?類對象


以下的成員函數(shù)可以將另一個字符串或字符接在 QString 對象后面,形成一個整體的字符串:



QString?&append(const?QString?&str);????????????????//?接續(xù)?QString?對象
QString?&append(const?char?*str);????????????????????//?接續(xù)普通字符串
QString?&append(QChar?ch);????????????????????????????//?接續(xù)?QChar?對象



它們的返回值是 QString 對象自己的引用,也就是說,可以用在這個返回值再次調(diào)用成員函數(shù),形成連續(xù)的字符串接續(xù)操作。

?為了讓代碼更直觀, QString 類中還定義了一個操作符用于字符串的接續(xù)



QString?&operator?+=?(const?QString?&other);?????//?續(xù)接?QString?對象
QString?&operator?+=?(const?char?*str);????//?續(xù)接普通字符串
QString?&operator?+=?(char?ch);????//?接續(xù)字符型數(shù)據(jù)
QString?&operator?+=?(QChar?ch);???//?接續(xù)?QChar?對象


?它們的功能與 append 相同。由于 C++ 語言允許賦值操作符和復(fù)合賦值操作符的返回值作為左值使用,因此它們的返回值也被設(shè)計(jì)為 QString 對象自己的引用,故也可以連續(xù)操作。但由于復(fù)合賦值操作符的結(jié)合順序是從右往左,要想先計(jì)算左邊的操作數(shù)需要加括號。
? ? ? ??



? ? ? ?與 append 函數(shù)功能類似,以下的成員函數(shù)也能夠?qū)⒘硪粋€字符串或字符與 QString 對象連接起來,但是接在原字符串的前面:



QString?&prepend(const?QString?&str);??????????//?在前面接續(xù)?QString?對象
QString?&prepend(const?char?*str);??????????????//?在前面接續(xù)普通字符串
QString?&prepend(QChar?ch);??????????????????????//?在前面接續(xù)?QChar?對象


功能更一般化的是在 QString 對象的任意位置插入另一個字符串或字符,如:




QString?&insert(int?position,?const?QString?&str);???????????????????//?插入字符串
QString?&insert(int?position,?const?QChar?*pch,?int?size);?????????//?插入?QChar?數(shù)組
QString?&insert(int?position,?QChar?ch);???????????????????????????????//?插入?QChar?對象


?這里 position 參數(shù)是要插入的位置,返回值也是對 QString 對象自己的引用。?



? ? ? ?與插入相反的操作是移除 QString 對象中的一部分,如:



QString?&remove(int?position,?int?n);


這個函數(shù)可以移除 QString 對象中從位置 position 開始的 n 個字符,


下面兩個成員函數(shù)則可以從 QString 對象中移除指定的字符串或字符:



QString?&remove(QChar?ch,?Qt::CaseSensitivity?cs?=?Qt::CaseSensitive);
QString?&remove(const?QString?&str,?Qt::CaseSensitivity?cs?=?Qt::CaseSensitive);


?以下是 QString 對象的替換操作:




QString?&replace(int?position,?int?n,?const?QString?&after);????????????????????//?QString?對象
QString?&replace(int?position,?int?n,?const?QChar?*pch,?int?size);????????????//?QChar?數(shù)組
QString?&replace(int?opsition,?int?n,?QChar?after);????????????????????????????????//?QChar?對象



這三個函數(shù)的功能是將 QString 對象從 position 開始的 n 個字符替換為新內(nèi)容,新內(nèi)容分別由 QString 對象、QChar 數(shù)組 和 QChar 對象表示。

?以下成員函數(shù)則可以搜索指定的字符串或字符并開始替換:



QString?&replace(const?QString?&before,?const?QString?&after,?Qt::CaseSensitivity?cs?=?Qt::CaseSensitive);??????//?QString?替換為?QString
QString?&replace(QChar?ch,?cosnt?QString?&after,?Qt::CaseSensitivity?cs?=?Qt::CaseSensitive);???????????????????????//?QChar?替換為?QString
QString?&replace(QChar?before,?QChar?after,?Qt::CaseSensitivity?cs?=?Qt::CaseSensitive);??????????????????????????????//?Qchar?替換為?QChar


下面這個成員函數(shù)可以清空一個 QString 對象的內(nèi)容,使之成為空字符串。



void?clear();


?而下面這個成員函數(shù)可以截?cái)?QStrring 對象,也就是去掉指定位置后的所有內(nèi)容:



void?truncate(int?position);??????//?從位置?position?截?cái)?,位置?開始編號


下面這個成員函數(shù)可以截掉 QString 對象最后的若干個字符:



void?chop(int?n);?????//?截掉最后的?n個字符


以下幾個成員函數(shù)可以得到 QString 對象的子字符串:



QString?left(int?n)?const;??????//?得到左邊?n?個字符構(gòu)成的子字符串
QString?right(int?n)?const;????//?得到右邊?n?個字符構(gòu)成的子字符串
QString?mid(int?position,?int?n?=?-1)?const;??//?從中間得到子字符串


從中間得到子字符串時,參數(shù) position 是子字符串的起始位置,參數(shù) n 是字符串的個數(shù),如果n 為 -1,則表示一直到原字符串的結(jié)尾。


注意上述三個函數(shù)并不修改 QString 對象自身,而是返回一個臨時對象以供使用。

下面這個成員函數(shù)可以截去 QString 對象中頭部和尾部的空白字符:



QString?trimmed()?const;


?? ? ? 空白字符包括空格、回車、換行、制表符等字符。下面這個成員函數(shù)不僅能去掉 QString 對象頭尾的空白字符,還能將中間的連續(xù)多個空白字符全部替換成一個空格:



QString?simlified()?const;


加法操作符可以將兩個字符串或字符連接起來并以 QString 臨時對象的方式返回:



const?QString?operator+(const?QString?&s1,?const?QString?&s2);???????
const?QString?operator+(const?QString?&s1,?const?char?*s2);
const?QString?operator+(const?char?s1,?const?QString?&s2);
const?QString?operator+(const?QString?&s,?char?ch);


注意加法操作符的兩個操作數(shù)中必須至少有一個是 QString 對象,否則無法重載操作符。顯然,加法操作副都不是 QString 類的成員。 ? ??

? ? ? ??

?索引

QString 類也像普通的字符串一樣可以根據(jù)下標(biāo)得到某個位置上的字符:



const?QChar?at(int?position)?const;


這是一個成員函數(shù),更直觀的方法是用以下的操作符:



const?QChar?operator[]?(int?position)?const;
const?QChar?operator[]?(uint?position)?const;


? ? ? ? ?這樣對 QString 對象的取字符操作就類似于對一個字符數(shù)組的操作。事實(shí)上,通過【】操作符得到的字符還可以被修改,要用到另外兩個重載的【】操作符:



QCharRef?operator[]?(int?position);
QCharRef?operator[]?(uint?position);


返回的 QCharRef 類是一個輔助類,對它的修改將反映到原字符串中去。


統(tǒng)計(jì)

?以下兩個成員函數(shù)都可以得到 QString 對象中字符的個數(shù)



int?size()?const;
int?length()?const;


注意字符的個數(shù)并不一定等于字節(jié)數(shù)。













本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護(hù)是驅(qū)動電源設(shè)計(jì)中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機(jī)驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計(jì)工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉