QT中字串的轉化與拼接

2021-07-31 05:29:32 字數 2397 閱讀 8498

先說幾個相關的類:

一 、qchar

qchar 類是 qt 中用於表示乙個字元的類,實現在 qtcore 共享庫中。qchar 類內部用2個位元組的unicode編碼來表示乙個字元。 構造

qchar 類提供了多個不同原型的建構函式以方便使用,如:

實際使用時很少直接構造 qchar 類的物件,而是把這些建構函式當做型別轉換來用,讓編譯器自動構造所需的qchar類物件。也就是說,在所有需要qchar類作為引數的地方都可以安全地使用各種整數型別。 判斷

qchar 類提供了很多成員函式,可以對字元的型別進行判斷,如: 

注意這幾個函式都不會改變物件自身,轉換的結果通過返回值反映出來。

比較:bool operator != (qchar c1, qchar c2); 

// 判斷 c1 是否不等於 c2 

bool operator 

< (qchar c1, qchar c2); 

// 判斷 

c1 是否小於 c2 

bool operator 

<= (qchar c1, qchar c2); 

// 判斷 c1 是否小於等於 c2 

bool operator == (qchar c1, qchar c2); 

// 判斷 c1 

是否等於c2 

bool operator > (qchar c1, qchar c2); 

// 判斷 c1 是否大於 c2 

bool operator >= (qchar c1, qchar c2); 

// 判斷 

c1 是否大於等於 c2 

二、qstring類:

qstring 類是 qt 中用於表示字串的類,實現在 qtcore 共享庫中。qstring 類在實現上有以下特徵。

1)字串採用 unicode 內部編碼,可以表示世界上大多數語言的文字。

2)字串的儲存有引用計數,當乙個 qstring 物件被複製為另乙個 qstring 物件時,它們實際上指向相同的儲存空間,僅僅是增加乙個引用計數。

3)採用 「按需複製」 的技術,當指向相同儲存空間的多個 qstring 物件中的乙個要被修改時,將真正複製乙個新的字串並進行修改。

構造:qstring 類提供了很多不同原型的建構函式以方便使用。如:

由於存在這些建構函式,凡是可以用 qstring 類作為引數的地方,都可以安全地使用 qchar 物件或普通的字串。

判斷 :

可以用下面的成員函式判斷 qstring 物件是否為空字串:

bool 

isempty() 

const; 

// 判斷是否為空字串 

轉換: 

這些函式能夠解析 qstring 物件的內容,將其轉換為相應的數值。其中 ok 引數指向乙個 bool 型變數, 這個引數用於輸出轉換是否成功的資訊。base引數則是轉換為整數型別時的基。這些函式都不會改變 qstring 物件自身。 

注意: 當字串以 0x開頭時,轉換的基自動轉換為16, 當字串以0開頭時,轉換的基自動為8。

還有一些將其他型別轉換成qstring的方法:

使用static的函式number()可以把數字轉換成字串。例如:

qstring str = qstring::number(54.3);

你也可以使用非static函式setnum()來實現相同的目的:

qstring str;  

str.setnum(54.3); 

字串的拼接:

一、qstring可以自動的對占用記憶體空間進行擴充,這種連線操作是恨迅速的。下面是這兩個操作符的使用:

qstring str = "user: "  ;  

str = "user: "  ;  

str.sprintf("%s %.1f%%"  , "perfect competition"  , 100.0);

這句**將輸出:perfect competition 100.0%,同c語言的printf()一樣。不過前面我們也見到了qt提供的另一種

四、格式化字串輸出的函式arg():

str = qstring("%1 %2 (%3s-%4s)"  )  

.arg("permissive"  ).arg("society"  ).arg(1950).arg(1970);

這段**中,%1, %2, %3, %4作為佔位符,將被後面的arg()函式中的內容依次替換,比如%1將被替換成permissive,%2將被替換成society,%3將被替換成 1950,%4將被替換曾1970,最後,這句**輸出為:permissive society (1950s-1970s). arg()函式比起sprintf()來是型別安全的,同時它也接受多種的資料型別作為引數,因此建議使用arg()函式而不是傳統的 sprintf()。

拼接字串 Python中字串拼接的N 1種方法

python拼接字串一般有以下幾種方法 1.直接通過 操作符拼接 輸出結果 hello world 使用這種方式進行字串連線的操作效率低下,因為python中使用 拼接兩個字串時會生成乙個新的字串,生成新的字串就需要重新申請記憶體,當拼接字串較多時自然會影響效率。2.通過str.join 方法拼接 ...

Python 分割字串與拼接字串

號 實現字串連線 zhrq 95 zhrq95 a 95 b zhrq print b a 注 是反引號,因為其容易看錯,此方法不推薦 zhrq95 print b str a zhrq95 print b repr a repr a 與上面的類似 zhrq95 split 這個函式的作用是將字串根...

golang中的字串拼接

由於golang中的字串是不可變的型別,因此用 連線會產生乙個新的字串對效率有影響。這種方式實現的字串拼接過程最簡單,在實際中這種拼接方式在應對少量拼接時,效率還是不錯的。s1 hello s2 world s3 s1 s2 fmt.print s3 s3 helloworld 使用sprintf函...