STL之string

string构造函数,很多重载函数;

 1 #include <iostream>
 2 #include <string>
 3 
 4 using namespace std;
 5 int main()
 6 {
 7     string s1; 
 8     cout << s1 << endl;
 9 
10     string s2(5, 'a');
11     cout << s2 << endl;
12 
13     string s3(s2);  //将s2的字符拷贝到s3中,之后两个完全无关
14     cout << s3 << endl;
15 
16     string s4(s3.begin(), s3.begin()+s3.size()/2);
17     cout << s4 << endl;
18 
19     char *cp = "hi";    //c语言中的字符串,存在一个看不见的'\0'; 
20     char c_array[] ="world!!!!";    //c语言中的字符串,存在一个看不见的'\0'; 
21     char no_null[] = {'H', 'i'};    //字符数组,而非字符串  //{'H', 'i', '\0'}; 
22 
23     string ss1(cp);
24     cout << ss1.size() << ss1 << endl;  //ss1.size()=2 ,ss1=hi,没有\0字符:0
25 
26     string ss2(c_array, 5); 
27     cout << ss2.size() << ss2 << endl;
28         
29     string ss3(c_array+5, 4); 
30     cout << ss3.size() << ss3 << endl;
31 
32     //string ss4(no_null);  //ERROR; 默认全部取出,由于没有\0,没办法截至
33     string ss4(no_null, 2); //OK;
34     cout << ss4.size() << ss4 << endl;
35     cout << ss4.size() << ss4 << endl;
36   //ss2 = "world" 37 string ss5(ss2, 2); //从ss2的第2个位置开始到结束复制给ss5; 38 cout << ss5.size() << ss5 << endl; 39 40 string ss6(ss2, 2, 1); //从ss2的第2个位置开始,最多1个字符结束复制给ss5; 41 cout << ss6.size() << ss6 << endl; 42 43 string ss7(ss2, 0, 8); //从ss2的第0个位置开始,最多8个字符,结束复制给ss5; 44 cout << ss7.size() << ss7 << endl; 45 46 return 0; 47 }

 

posted on 2015-06-22 09:36  阳台  阅读(178)  评论(0编辑  收藏  举报

导航