Qt入門 字串類QString

2021-08-09 08:17:12 字數 3385 閱讀 6471

qstring是unicode字元的集合,它是qt api中使用的字串類。

qstring的成員是qchar,qchar是乙個16位unicode字元類。大多數編譯器把它看作是乙個unsigned short。

qstring和c標準中的字串不同,它不以'\0'結尾,相反,qstring可以嵌入'\0'/字元。

(1)qstring初始化。

[cpp]view plain

copy

qstring str(

"hello"

);  

qstring str = "hello"

;  static

const

qchar data[4] = ;  

qstring str(data, 4);  

qstring str;  

str.resize(4);  

str[0] = qchar('u'

);  

str[1] = qchar('n'

);  

str[2] = qchar(0x10e3);  

str[3] = qchar(0x03a3);  

qstring str;  

str.sprintf("%s %.3f"

, "float"

, 3.1415926);  

//str結果是"float 3.14"

qstring str;  

str.setnum(10);  //str = "10"

str.setnum(10, 16); //str = "a"

str.setnum(10.12345); //str = "10.12345"

qstring i;           // current file's number

qstring total;       // number of files to process

qstring filename;    // current file's name

qstring status = qstring("processing file %1 of %2: %3"

)  .arg(i).arg(total).arg(filename);  

(2)字串轉換

[cpp]view plain

copy

long

tolong ( 

bool

* ok = 0, 

intbase = 10 ) 

const

qlonglong   tolonglong ( bool

* ok = 0, 

intbase = 10 ) 

const

short

toshort ( 

bool

* ok = 0, 

intbase = 10 ) 

const

double

todouble ( 

bool

* ok = 0 ) 

const

float

tofloat ( 

bool

* ok = 0 ) 

const

uint    touint ( bool

* ok = 0, 

intbase = 10 ) 

const

ulong   toulong ( bool

* ok = 0, 

intbase = 10 ) 

const

qulonglong  toulonglong ( bool

* ok = 0, 

intbase = 10 ) 

const

ushort  toushort ( bool

* ok = 0, 

intbase = 10 ) 

const

引數ok結果說明轉換是否成功。

示例:[cpp]view plain

copy

qstring str;  

bool

ok;    

double

d = str.todouble(&ok);    

if(ok)    

else  

(3)字串比較

[cpp]view plain

copy

intcompare ( 

const

qstring & other ) 

const

intcompare ( 

const

qstring & other, qt::casesensitivity cs ) 

const

intcompare ( 

const

qlatin1string & other, qt::casesensitivity cs = qt::casesensitive ) 

const

intcompare ( 

const

qstringref & ref, qt::casesensitivity cs = qt::casesensitive ) 

const

[cpp]view plain

copy

qstring().isnull();               

// returns true

qstring().isempty();              // returns true

qstring(""

).isnull();             

// returns false

qstring(""

).isempty();            

// returns true

qstring("abc"

).isnull();          

// returns false

qstring("abc"

).isempty();         

// returns false

(4)字串處理

qstringleft ( int n ) const  //取左邊的n個字元。

qstringright ( int n ) const //取右邊的n個字元。

replace()函式提供方法替換字串。

remove()函式從字串中移除字元。

split()函式拆分字串。

mid()取子串。

Qt中的字串類QString

qt下面,字串都用qstring,確實給開發者提供了方便,想想vc裡面定義的各種變數型別,而且函式引數型別五花八門,經常需要今年新那個型別轉換 qt再使用第三方開源庫時,由於庫的型別基本上都是標準的型別,字串遇的多的就是char 型別 在qt下怎樣將qstring轉char 呢,需要用到qbytea...

Qt之QString字串分割 擷取

在做專案中不可避免的會使用到一串字串中的一段字元,因此常常需要擷取字串。有兩種方式可以解決這個問題 方法一 qstring分割字串 qstring date dateedit.tostring yyyy mm dd qstringlist list date.split qstring字串分割函式方...

QT之字串類

前面我們講解了開發計算器的訊號處理機制,接下來我們來講講關於字串顯示的問題。我們都知道 c 語言不支援真正意義上的字串 c 語言是用字元陣列和一組函式來實現字串操作的 c 語言不支援自定義型別,因此我們無法獲得字串型別。從 c 到 c 的進化過程引入了自定義型別,在 c 中可以通過類完成字串型別的定...