STL string的構造函數


     前幾天在網上,一位網友問我幾個問題如下:

 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的初值 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM