c 中的資料型別string的常用方法

2021-10-09 03:55:40 字數 1861 閱讀 1580

string str:生成空字串

string s(str):生成字串為str的複製品

string s(str,begin,len):將字串str中從下標begin開始、長度為len的部分作為字串初值

string s(num ,c):生成num個c字元的字串

string s(str, index):將字串str中從下標index開始到字串結束的位置作為字串初值,類似於str.substr(index,length-index+1)

實際應用舉例:

string str1; //生成空字串

string str1="123456" //生成字串「123456」

string str2("123456789"); //生成"1234456789"的複製品

string str3("12345", 0, 3);//結果為"123"

string str5(5, '1'); //結果為"11111"

string str6(str2, 2); //結果為"3456789"

size()和length():返回string物件的字元個數,他們執行效果相同。

使用方法:str.size() / str.length()

max_size():返回string物件最多包含的字元數,超出會丟擲length_error異常

使用方法:str.max_size()

capacity():重新分配記憶體之前,string物件能包含的最大字元數

使用方法:str.capacity()

1. c++字串支援常見的比較操作符(>,>=,<,<=,==,!=),甚至支援string與c-string的比較(如 str<」hello」)。在使用》,>=,<,<=

這些操作符的時候是根據「當前字元特性」將字元按字典順序進行逐一得比較。字典排序靠前的字元小,比較的順序是從前向後比較,

遇到不相等的字元就按這個位置上的兩個字元的比較結果確定兩個字串的大小(前面減後面)

比如 string ("aaa")

str後面加入字串"abc"

str+="abc"

str後面加入字串"abc"

string s1("abcdef"); // 呼叫一次建構函式

for( int i = 0; i < s1.size() ; i++ )

cout《還有一種辦法就是大小寫字典中的差來修改

#include#includeusing namespace std;

int main(void)

substr擷取字串的一段字串

string s1("0123456789");

string s2 = s1.substr(2,5); // 結果:23456-----引數5表示:擷取的字串的長度

string str="abcdefghi"

1.str.find("bcd") 查詢字串出現的下標 結果為:1

str.find("hjk") 結果為:-1 說明未找到

2.str.find('i',6)

從下標為6開始找字元'i',返回找到的第乙個i的下標

結果為8

3.str.rfind("bcd")

從字串的末尾開始查詢字串,返回的還是首字母在字串中的下標

結果為1

4.str.find_first_of("13br98")

在該字串中查詢第乙個屬於字串str的字元

結果為1 (說明下標為1的b是第乙個屬於str的字元)

c 資料型別 string

string是c 標準類中的字串類,可以用它代替c風格的字串操作,來減少指標等底層因素引起的錯誤。使用string類,標頭檔案引用 i nclude i nclude if msc ver 1020 using namespace std endif 其中,主要是要引用std名字空間。定義 stri...

c 資料型別string

c 中資料型別大部分和c語言都一樣,像整型,浮點,char,結構體,陣列等等,有區別的一點是c 中提供了字串型別string,更嚴謹一點,string是c 提供的乙個類。這一點是c語言中沒有的,c語言中是以字元陣列來儲存字串的。要使用string類,必須在程式中包含標頭檔案string。string...

C 共享資料型別的保護(常型別)

常型別 常引用 被引用的物件不能被更新。const 型別說明符 引用名 常物件 必須進行初始化,不能被更新。類名 const 物件名 常成員函式 型別說明符 函式名 參數列 const 常陣列 陣列元素不能被更新 型別說明符 const 陣列名 大小 常指標 常型別定義一定是一行定義,一次性初始化,...