標准c++中String類非常強大,合理使用,能極大提高編程效率,下面就對string類的用法進行總結。
頭文件
#include
1) string s; //生成一個空字符串s
2) string s(str) //拷貝構造函數生成str的復制品
3) string s(str,index) //將字符串str內“始於位置index”的部分當作字符串的初值
4) string s(str,index, n) //將字符串str內“始於index且長度頂多n”的部分作為字符串的初值
5) string s(cstr) //將C字符串作為s的初值
6) string s(chars,chars_len) //將C字符串前chars_len個字符作為字符串s的初值。
7) string s(n,c) //生成一個字符串,包含n個c字符
8) string s(str.begin(),str.end()) //以區間begin():end() (不包含end())內的字符作為字符串s的初值
#include#include using namespace std; int main () { //定義 string s0 (abcdefghijklmn); string s1; string s2 (s0); string s3(s0,3); string s4 (s0,3, 4); string s5 (let us learn string); string s6 (let us learn string,6); string s7 (10, 'x'); string s8 (s0.begin(), s0.begin()+7); //輸出 cout << s1: << s1 << s2: << s2 << s3: << s3; cout << s4: << s4 << s5: << s5 << s6: << s6; cout << s7: << s7 << s8: << s8 << ' '; return 0; }
之後會對相關函數進行講解,如果不想將下面操作函數全部看完,大伙可以找自己感興趣的函數看。
1) =,assign() //賦以新值
2) swap() //交換兩個字符串的內容
3)+=,append(),push_back() //在尾部添加字符
4) insert() //插入字符
5) erase() //刪除字符
6) clear() //刪除全部字符
7) replace() //替換字符
8) + //串聯字符串
9)==,!=,<,<=,>,>=,compare() //比較字符串
10)size(),length() //返回字符數量
11) max_size() //返回字符的可能最大個數
12) empty() //判斷字符串是否為空
13) capacity() //返回重新分配之前的字符容量
14) reserve() //保留一定量內存以容納一定數量的字符
15) [ ], at() //存取單一字符
16)>>,getline() //從stream讀取某值
17) << //將謀值寫入stream
18) copy() //將某值賦值為一個C_string
19) c_str() //將內容以C_string返回
20) data() //將內容以字符數組形式返回
21) substr() //返回某個子字符串
22)查找函數
23)begin() end() //提供類似STL的迭代器支持
24) rbegin() rend() //逆向迭代器
25) get_allocator() //返回配置器
#include#include using namespace std; int main(void) { string s1; //尾部插入字符 s1.push_back('a'); s1.push_back('b'); s1.push_back('c'); cout << 打印s1: << s1 << endl; char* cArray=efgh; string s2(cArray); cout << 打印s2: << s2 << endl; //字符串的+操作 cout << 打印s1+s2: << s1 + s2 << endl; //字符串s1後添加字符串s2 cout << append後,打印s1: << s1.append(s2) << endl; //在s1的第個字符位置前插入字符'8' s1.insert(s1.begin()+1,'8'); cout << insert後,打印s1: << s1 << endl; //字符串的+=操作 s1+=s2; cout << s1+=s2後,打印s1: << s1 << endl; return 0; }