C 之string定義 用法詳解

2021-09-12 01:40:21 字數 2227 閱讀 2090

string用法

1,定義

string str;

初始化 ,可以直接給string型別的變數賦值;

string str = 「abcd」;

⚠️:使用時,需要加上標頭檔案

#include

using namespace std;

2,string中內容訪問

一般來說,可以直接像字串陣列一樣取訪問

示例:

#include#includeusing namespace std;

int main(int argc, char const *ar**)

printf("\n");

return 0;

}

如果需要讀入和輸出整個字串,則只能用cin和cout

示例:

#include#includeusing namespace std;

int main(int argc, char const *ar**)

⚠️:printf也可以輸出string,使用c_str()將string型別轉為字串陣列進行輸出

示例:

#include#includeusing namespace std;

int main(int argc, char const *ar**)

2)通過迭代器訪問

string不像其他stl容器那樣需要引數,因此可以直接如下定義:

string::iterator it;

這樣就得到了迭代器it,並且可以通過*it來訪問string裡的每一位

string和vetor一樣,支援直接對迭代器進行減某個數字,如str.begin()+3的寫法是可行的

#include#includeusing namespace std;

int main(int argc, char const *ar**)

printf("\n");

return 0;

}

3)string常用函式例項解析

1)operator+=

這是string的加法,可以將兩個string直接拼接起來

示例:

#include#includeusing namespace std;

int main(int argc, char const *ar**)

3)length()/size()

length返回string的長度,即存放的字元數,時間複雜度為o(1)

size()和length()基本相同

⚠️:strlen()和sizeof()區別

sizeof()是運算子,其值在編譯時即計算好了

獲得保證能容納實現所建立的最大物件的位元組大小。

strlen()是函式,字串的實際長度,它求得方法是從開始到遇到第乙個'\0』。

#include#include#includeusing namespace std;

int main(int argc, char const *ar**)

5)erase()

erase()有兩種用法,刪除單個元素,刪除乙個區間內的所有元素,時間複雜度為o(n)

a,刪除單個元素

str.erase(it)用於刪除單個元素,it為需要刪除的元素迭代器

b,刪除乙個區間內的所有元素

方法一:

str.erase(first,last),其中first為需要刪除的區間的起始迭代器,而last為需要刪除區間額末尾迭代器的下乙個位址,也即為[first, last]

方法二:

str.erase(pos,length),其中pos為需要開始刪除的其實位置,length為刪除的字元個數

示例:

#include#includeusing namespace std;

int main(int argc, char const *ar**)

6)clear()

作用:用以清空string中的資料,時間複雜度為o(1)

示例:

//#include#include#includeusing namespace std;

int main(int argc, char const *ar**)

String用法詳解

include 注意這裡不是string.h,string.h是c字串標頭檔案這樣我們就宣告了乙個字串變數,但既然是乙個類,就有建構函式和析構函式。上面的宣告沒有傳入引數,所以就直接使用了string的預設的建構函式,這個函式所作的就是把str初始化為乙個空字串。string類的建構函式和析構函式如...

string用法詳解

標準庫型別string,是可變長度的字串行,支援字串間的複製 比較 連線,還支援字串長度查詢和是否為空的判斷,並且可以訪問其中的單個字元。使用它需要標頭檔案。1.字串的連線 s1 s1 s2 將字串2接在字串1後面,後面可以是以雙引號引起來的非string型別的字串,但是必須至少存在乙個string...

C 之string型別詳解

from 之所以拋棄char 的字串而選用c 標準程式庫中的string類,是因為他和前者比較起來,不必擔心記憶體是否足夠 字串長度等等,而且作為乙個泛型類出現,他整合的操作函式足以完成我們大多數情況下 甚至是100 的需要。我們可以用 進行賦值操作,進行比較,做串聯 是不是很簡單?我們盡可以把它看...