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 }