1.為什麼要選擇string類
記憶體不受限,有沒有在oj為了輸入資料的字串的長度不可知而痛苦萬分,有了string類,所有都交給他來幫你完成吧,暫時也就可以忽略記憶體管理這件**的事情了。
豐富的操作符,這一點有點類似與python這樣的指令碼語言的中的str,用起來比較的得心應手,要是再有個分割split()函式,去除頭尾的空字元函式strip(),然後vector再來個join函式用起來感覺應該是大大的好。
所以既然選擇了c++,就應該好好把string 當成基本型別來使用。
2.怎麼用string類
2.1 建構函式
#include #include int main ()
結果 s1:
s2: initial string
s3: str
s4: a char
s5: another character sequence
s6: *********x
s7a: **********
s7b: initial
2.2 使用
迭代器:std::string::iterator it ;
for(it = s.begin();it != s.end(); it++)
sdt::cout<<*it;//print the single character
操作符: 這個比較像c裡面字串的操作
int length = s.length();
for(int i=0; i < length; i++)
std::cout《區別點:
c語言裡面識別乙個字串的結束符為'\0',
但是string類裡面不是的,所以要把字串截短一定要用erase()函式把不要的字串拿掉,,不能加上『\0 』就可以了
例子:
結果:#include #include #include int main ()
return 0;
}
initial length 14
present length 14ctring length7
s ends with '\0'
3,操作函式
賦值 =
附加 + +=
compare()
if (str1.compare(str2) != 0)
std::cout << str1 << " is not " << str2 << '\n';
if (str1.compare(6,5,str2,4,5) == 0)
return 0;
4,查詢
找不到的返回值為: std::string::npos
5,其他
split參考:
6,如果需要轉換成char* 就用c_str()
參考:
c string類物件的使用
txj.cpp 此檔案包含 main 函式。程式執行將在此處開始並結束。include pch.h include include using namespace std intmain string s2 i love china 2 size length if s2.size 4 string...
C String類的實現
參考c primer.string類的實現,清翔兔 06,jan.include using namespace std class string string void private char m data inline string string const char str if str m...
C String類的實現
include using namespace std class string string void private char m data inline string string const char str inline string string const string other i...