C 中的string詳解

2021-08-27 21:06:10 字數 3140 閱讀 6699

1 string s;//呼叫預設建構函式,s為乙個空字串

2 string s(str);//等價於string s = str;呼叫拷貝建構函式,s是str的備份

3 string s(str,strindex);//將字串str內始於strindex位置的部分當作s的初始值

4 eg.string str = "123456789";

5 string s(str,3);//s的初值為str由位置3開始的字串,即456789

6 string s(str,stridx,strlen); // 將字串str由stridx位置起始且長度為strlen的部分最為s的初值,如果strlen大於最大長度,則只擷取字串最大長度

7 eg.string s(str,3,10);//s=456789,由位置3開始,擷取長度為10的部分,由於str剩餘部分長度小於10,則擷取str剩餘最大長度

8 string s(cstr);//將c風格字串作為s的初值

9 eg.string s("hello");//s的初值為hello

10 string s(cstr,length);//將c風格字串的length長度部分作為s的初值

11 eg.string s("hello",2);//s="he"

12 string s(num,c);//生成乙個字串,包含num個c字元

13 eg.string s(10,'c');//s的初值為「cccccccccc」

1 =、assign()//用於賦予新值,assign函式用於將乙個字串的部分內容賦值給另乙個string物件

2 eg.string s1 = "hello";

3 string s2;

4 s2.assign(s1,0,3);//s2的值為「hel」

5 6 swap() //交換兩個字串的內容

7 eg.string s1 = "hello";

8 string s2 = "world";

9 swap(s1,s2);//swap函式將s1和s2的內容交換,現在s1="world",s2="hello"

10 12 eg.string s1 = "hello";

13 string s2 = " world";

14 s1 += s2;//正確,s1的值為」hello world「

15 s1 +="world";// 正確,s1的值為"hello world"

16 s1 +='c'; //正確,s1的值為"helloc"

17 21

22 s1.push_back(s2);//錯誤

23 s1.push_back("world");//錯誤

24 s1.push_back('c');//正確

25 26

27 insert()//用於插入字串

28 eg.string s1 = "hello";

29 s1.insert(0,"world ");//s1的值為world hello

30 31 erase()//用於刪除字元的

32 eg.string str("this is an example phrase.");

33 string::iterator it;//迭代器

34 35 str.erase(10,8);//str的值為"this is an phrase.",刪除了從位置10開始的8個字元

36 37 it = str.begin()+9;//迭代器位置為9

38 str.erase(it);//刪除了從it迭代器位置處的乙個字元,str="this is a phrase."

39 40 str.erase(str.begin()+5,str.end()-7);//刪除兩個引數之間的所有字元,str="this phrase."

41 42

43 clear()函式和~string()//都是用來刪除全部字元的

44 eg.str.clear();//刪除str的全部字元,此時str為乙個空串

45 str.~string();//銷毀所有字元,釋放記憶體

46 47 replace()函式,用於替換字元

48 eg.1.string line = "this@ is@ a test string!";

49 line = line.replace(line.find("@"),1,"");//將line中從find的@位置開始替換乙個長度的字元為"" 結果為this is@ a test string!

50 51 ==、!=、、>=、compare()//比較字串

52 eg.string s1 = "haha";

53 string s2 = "haha";

54 if(s1.compare(s2) == 0)

57 58 size()函式和length()函式,返回字串的字元數

59 eg.string str = "haha";

60 str.size() 等於 str.length(),值均為4

61 62 empty()//判斷字串是否為空

63 64 下標法str[index]或者str.at(index)獲取字串內指定位置的字元

65 66 data()函式,將內容以字元陣列的形式返回

元素訪問

已知類string的原型為:

1 class string

2 ;

編寫上述三個函式的實現:

1 //普通建構函式

2 string:string(const char *str)

3 else

12 }

13 14 //析構函式

15 string::~string(void)

16 19

20 //拷貝建構函式

21 string::string(const string &other)

22

C 中string類詳解

1 string 型別的建構函式 string s 定義乙個空的 string 型別 預設建構函式 string s cp 用cp c風格的字串 初始化 string 物件string s s1 用string 物件s1 初始化s string s n,c 將s 初始化為 c 的 n個副本 stri...

C 中string和String的區別

string是string的別名。string是c 中的類,string是.net framework的類 在c ide中不會顯示藍色 c string對映為.net framework的string 如果用string,編譯器會把它編譯成string,所以如果直接用string就可以讓編譯器少做一...

C 中String和string的區別

在c 程式設計時,有時碰到string,有時碰到string,可是感覺二者都可以,所以決定總結下二者的區別。msdn microsoft developers network 中對string的說明 stringis analiasforstringin the net framework。即str...