Qt學習01 字串類

2021-08-02 11:33:54 字數 2887 閱讀 6306

pr:標準c++提供的字串有兩種:

1、以」\0「結尾的字元陣列;

2、字串類string。qt使用的字串類qstring,儲存16位unicode值,除了操作、查詢、轉換函式,還使用了隱式共享並優化記憶體分配策略。

qstring str1 = "welcome ";qstring str2 = str1 + "to "; 

//str2 = "welcome to "

qstring str2 += "qt ";

//str2 = "welcome to qt "

//str3 = "welcome to qt world"

str.springf("%s%s",str1,"to qt world"); 

//str = "welcome to qt world"

arg()相比sprintf()更好。它型別安全,完全支援unicode,允許"%n"改變順序。

qstring str1 = "welcome ";

qstring str2 = "to "+"you.";

qstring str4 = qstring(str1+" was born in "+str2).arg(str1).arg(str2);

//str4 = "welcome to you."

qstring str5 = qstring("%1 love %2").arg("i").arg("you");

//str5 = "i love you"

qstring str6 = qstring("%2 love %1").arg("me").arg("you");

//str6 = "you love me"

1、insert(): 在原字串指定位置插入另乙個字串;

2、prepend(): 在原字串的開頭插入另乙個字串;

3、replace(): 用指定字串代替原字串某些字元。

4、去除空白字元(回車符"\n"、換行符"\r"、製表符"\t"、空格符" "):

①qstring::trimmed(): 移除字串兩端空白字元

②qstring::simplified(): 移除字串兩端空白字元,並使用單個空格字元「 」代替空白字元。

qstring str1 = "   welcome \t to \n you!   ";

qstring str2;

qstring str3;

str2 = str1.trimmed();

str3 = str1.simplified();

判斷乙個字串是否以某個字串開頭。函式的兩個引數分別指定字串和是否大小寫敏感(預設敏感)。

qstring str1 = "welcome to you!";qdebug()《判斷乙個字串是否以某個字串結尾。用法同string::startswith()。

判斷乙個字串是否包含某個字串。用法同string::startswith()。

<=可替換稱<、>、==等比較運算子。從第乙個字元開始比較,比較的是ascii的值。

qstring str1 = "welcome to you!";

qstring str2 = "wel";

qstring str3 = "w";

qdebug()《對s1和s2進行比較,如果s1小於、等於或者大於s2,就返回小於、等於或者大於0的整數。這個比較是基於本地字符集的,並且平台相關的。通常使用這個函式可以把排好序的字串列表呈現給使用者。

qstring str1 = "welcome to you!";

qstring str2 = "a";

qstring str3 = "welcome to you!";

qstring str4 = "x";

qdebug()《用法類似localeawarecompare,大小寫比較完全基於字元的unicode編碼,而且十分迅速。

將字串轉換為整數。類似還有todouble()、tofloat()、tolong()等。

qstring str1 = "40";

qstring str2 = "40";

qstring str3 = "040";

bool ok;

qdebug()<

qstring的字元編碼集轉換函式將會返回乙個由建構函式qbytearray(const char*)構造的const char*型別的qbytearray物件,既可以儲存原始位元組,也可以儲存以「\0」結尾的8位字串。轉換函式由一下幾種:

1、toascii()

返回乙個ascii編碼的8位字串。在qt 5以上版本中已經移除這個函式,可用tolatin1()代替。

2、tolatin1()

返回乙個latin-1(iso8869-1)編碼的8位字串。

3、toutf8()

返回乙個utf-8編碼的8位字串。

4、tolocal8bit()

返回乙個系統本地編碼

(比如我用的win10中文版,編碼是gbk。如果是英文版就是utf-8)

的8位字串。

qstring str1 = "hello world!";

qbytearray ba = str1.tolatin1();

qdebug()<

①null字串是使用預設建構函式或者「(const char*)0」作為引數的建構函式建立的qstring字串物件;

②empty則是乙個大小為0的字串。

null字串一定是乙個空字串,空字串不一定是null字串。

例如:qdebug()《輸出:

true

true

false

true

藍橋 01字串

include defint max 5 int f max int main if i j f j 1 for k 1 k 5 k printf d n a k for i 1 i 5 i include int a 32 int min 1 int b 34 int main for i 0 i...

0 1字串問題

程式設計找出符合下列條件的字串 字串中僅包含0和1兩個字元 字串的長度為n 字串中不含有三個連續的相同子串。輸入檔案僅包含乙個整數n 0 n 35 表示字串的長度。輸出檔案僅包含乙個整數,表示符合上述條件的字串的總數。24 include include includeusing namespace...

最長01字串

題目描述 已知乙個長度為n的字串,只由0和1組成,求乙個最長的子串,要求該子串出0和1出現的次數相等。要求演算法時間複雜度盡可能的低。比如 1000010111000001,加粗的部分有4個0 4個1 思路 1 最簡單的想法就是遍歷所有的子串,之後判斷該子串是否滿足條件 n 2子串,每個子串掃一遍判...