#include#include using namespace std;int main()
{ string str("cvicses");
string s(str.rbegin(),str.rend());
cout << s 《一,型別別名
size_type
無符號整型
iterator
迭代器型別
const_iterator
唯讀迭代器
reverse_iterator
逆序迭代器
const_reverse_iterator
唯讀逆序迭代器
different_type
足以儲存兩個迭代器差值的有符號整型
value_type
元素型別
reference
元素左值型別,是value_type&的同義詞
const_reference
元素常量左值型別,是const value_type&的同義詞
二,建構函式
string s1;
預設建構函式
string s2(s1);
初始化為s1的副本
string s3("value");
初始化為字串字面值的副本
string s4(n,'c');
初始化為n個字元為'c'的副本
string s5(cp,n);
初始化為cp所指陣列的前n個字元的副本
string s6(s1,pos);
初始化為s1從下標pos開始的字元的副本
string s7(s1,pos,len);
初始化為s1從下標pos開始長度為len個字元的副本
string s8(b,e);
初始化為迭代器b和e標記範圍內的元素的副本
三,新增元素
s.push_back('t');
尾部新增值為t的字元
s.insert(p,'t');
迭代器p前面插入值為't'的字元,返回指向新字元的迭代器
s.insert(p,n,'t');
迭代器p前插入n個值為't'的字元,返回void
s.insert(p,b,e);
迭代器p前插入由迭代器b和e標記範圍的元素
s.insert(pos,n,'t');
在下標pos前插入n個值為't'的字元
s.insert(pos,s2);
在下標pos前插入string物件s2
s.insert(pos,s2,pos2,len);
在下標pos前插入s2從pos2下標開始的len個字元
s.insert(pos,cp,len);
在下表pos前插入cp所指陣列的前len個字元
s.insert(pos,cp);
在下表pos前插入cp所指的以空字元結束的字串
四,刪除元素
s.erase(p);
刪除迭代器p所指向的元素。返回指向被刪元素後乙個元素的迭代器
s.erase(b,e);
刪除由迭代器b和e標記範圍內的元素,返回指向被刪元素段後乙個元素的迭代器
s.pop_back();
刪除最後乙個元素。返回void。vs2010支援。
s.clear();
刪除所有元素,返回void
五,長度大小
s.size();
返回s中元素個數,型別為size_type
s.max_size();
返回s中可容納最多元素個數,型別為size_type
s.empty();
返回s中元素是否為0的布林值
s.resize(n);
調整s的長度大小,使其能容納n個元素
如果ns.resize(n,'t');
調整s的長度大小,使其能容納n個值為't'的元素
s.capacity();
返回在s需要分配更多儲存空間前能儲存的元素個數,返回型別為size_type
s.reserve(n);
設定s預留n個元素的儲存空間,返回void
六,賦值操作
s1=s2;
刪除s1的所有元素,將s2元素複製給s1
s1.swap(s2);
將s1和s2的內容交換
s.assign(b,e);
重設s的元素:將迭代器b和e標記範圍的元素複製給s
s.assign(n,'t');
重設s為儲存了n個值為't'的物件
s.assign(s2);
不解析s.assign(s2,pos2,len);
不解析s.assign(cp,len);
不解析s.assign(cp);
不解析七,子串操作
s.substr(pos,n);
返回string型別字串,包含從下表pos開始的n個字元
s.substr(pos);
不解析s.substr();
返回s的副本
s.c_str();
返回s的c風格字串
八,string物件修改
操作函式:(args在參數列定義)
將args串接在s後面。返回s的引用
s.replace(pos,len,args);
刪除s中從下標開始的len個字元,用args替代之。返回s的引用。
此版本中,args不能為b2,e2
s.replace(b,e,args);
刪除迭代器b和e標記範圍內所有的字元,用args替代之。返回s的引用。
此版本中,args不能為s2,pos2,len2
args引數定義:
s2string 型別的字串s2
s2,pos2,len2
string型別的字串s2中從下標pos2開始的len2個字元
cp指標cp指向的以空字元結束的陣列
cp,len2
cp指向的陣列中的前len2個字元
n,'t'
字元't'的n個副本
b2,e2
迭代器b2和e2標記範圍內的所有字元
九,string查詢操作
操作函式:(args在引數**定義,返回型別都是size_type或是string::nops)
注意:find
和rfind
是串精確查詢,而
find_first
和find_last
是單個字元查詢。
s.find(args);
在s中查詢args的第一次出現
s.rfind(args);
在s中查詢args的最後一次出現
s.find_first_of(args);
在s中查詢args的任意字元的第一次出現
s.find_last_of(args);
在s中查詢args的任意字元的最後一次出現
s.find_first_not_of(args);
在s中查詢第乙個不屬於args的字元
s.find_last_not_of(args);
在s中查詢最後乙個不屬於args的字元
agrs引數:
't',pos
從下標pos開始,查詢字元't',pos的預設值為0
s2,pos
從下標pos開始,查詢string物件s2,pos預設值為0
cp,pos
查詢cp所指c風格字串,pos預設值為0
cp,pos,n
從下標pos開始,查詢cp所指陣列前n個字元
十,string物件比較(大於返回正數,小於返回負數,等於返回0)
s.compare(s2);
比較s和s2
s.compare(pos1,n1,s2);
讓s中從pos下標開始的n1個字元跟s2做比較
s.compare(pos1,n1,s2,pos2,n2);
讓s中從pos1下標開始的n1個字元與s2中從pos2開始的n2個字元比較
s.compare(cp);
cp,c風格字串
s.compare(pos1,n1,cp);
不解析s.compare(pos1,n1,cp,n2);
不解析
C String簡易實現
kstring.h ifndef kstring h define kstring h include class kstring endif kstring.cpp include kstring.h include 預設建構函式 建立空string kstring kstring kstring...
C String類的實現
參考c primer.string類的實現,清翔兔 06,jan.include using namespace std class string string void private char m data inline string string const char str if str m...
C String類的實現
include using namespace std class string string void private char m data inline string string const char str inline string string const string other i...