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 的需要。我們可以用 進行賦值操作,進行比較,做串聯 是不是很簡單?我們盡可以把它看...