前幾天在網上,一位網友問我幾個問題如下:
1 string S0(6, 'A'); 2 3 string S1 = "abcdefg"; 4 5 string S2(S1, 0, 3); 6 string S3 (S1, 3); 7 8 cout << "s0 = " << S0.c_str() <<endl; 9 cout << "s2 = " << S2.c_str() <<endl; 10 cout << "s3 = " << S3.c_str() <<endl;
就這么簡單的幾句語句,發現如果不去運行下,還真不知道結果是什么。
常用的 string賦值都是這樣的:
1 string s = "aaa"; 2 3 string s1("bbbb");
查了下資料,才知道string的構造函數居然有那么多。
1 a) string s; //生成一個空字符串s 2 b) string s(str) //拷貝構造函數 生成str的復制品 3 c) string s(str, stridx) //將字符串str內"始於位置stridx"的部分當作字符串的初值 4 d) string s(str, stridx, strlen) //將字符串str內"始於stridx且長度頂多strlen"的部分作為字符串的初值 5 e) string s(cstr) //將cstr字符串作為s的初值 6 f) string s(chars, chars_len) //將C字符串前chars_len個字符作為字符串s的初值。 7 g) string s(num, c) //生成一個字符串,包含num個c字符 8 h) string s(beg, end) //以區間beg;end(不包含end)內的字符作為字符串s的初值