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...