1、string概念
string和char*的比較
string封裝了char*,管理這個字串,是乙個char*型的容器。
string管理char*所分配的記憶體。每一次string的複製,取值都由string類負責維護,不用擔心複製越界和取值越界等。
查詢find,拷貝copy,刪除erase,替換replace,插入insert
2、string的建構函式
string(); //構造乙個空的字串string s1。
string(const string &str); //構造乙個與str一樣的string。如string s1(s2)。
string(const char *s); //用字串s初始化
string(int n,char c); //用n個字元c初始化
3string的訪問字元操作
const char &operator (int n) const;
const char &at(int n) const;
char &operator (int n);
char &at(int n);
主要區別在於at()在越界時會丟擲異常,在剛好越界時會返回(char)0,再繼續越界時,編譯器直接出錯。如果你的程式希望可以通過try,catch捕獲異常,建議採用at()。
4、從string取得const char*的操作
5、把string拷貝到char*指向的記憶體空間的操作
把當前串中以pos開始的n個字元拷貝到以s為起始位置的字元陣列中,返回實際拷貝的數目。注意要保證s所指向的空間足夠大以容納當前字串,不然會越界。
6、string的長度
int length() const; //返回當前字串的長度。長度不包括字串結尾的'\0'。
bool empty() const; //當前字串是否為空
7、string的賦值
string &operator=(const string &s);//把字串s賦給當前的字串
string &assign(const char *s); //把字串s賦給當前的字串
string &assign(const char *s, int n); //把字串s的前n個字元賦給當前的字串
string &assign(const string &s); //把字串s賦給當前字串
string &assign(int n,char c); //用n個字元c賦給當前字串
string &assign(const string &s,int start, int n); //把字串s中從start開始的n個字元賦給當前字串
8、string字串連線
string &operator+=(const string &s); //把字串s連線到當前字串結尾
string &operator+=(const char *s);//把字串s連線到當前字串結尾
9、string的比較
int compare(const string &s) const; //與字串s比較
int compare(const char *s) const; //與字串s比較
compare函式在》時返回 1,《時返回 -1,==時返回 0。比較區分大小寫,比較時參考字典順序,排越前面的越小。大寫的a比小寫的a小。
10、string的子串
string substr(int pos=0, int n=npos) const; //返回由pos開始的n個字元組成的子字串
11、string的查詢 和 替換
查詢int find(char c,int pos=0) const; //從pos開始查詢字元c在當前字串的位置
int find(const char *s, int pos=0) const; //從pos開始查詢字串s在當前字串的位置
int find(const string &s, int pos=0) const; //從pos開始查詢字串s在當前字串中的位置
find函式如果查詢不到,就返回-1
int rfind(char c, int pos=npos) const; //從pos開始從後向前查詢字元c在當前字串中的位置
int rfind(const char *s, int pos=npos) const;
int rfind(const string &s, int pos=npos) const;
//rfind是反向查詢的意思,如果查詢不到, 返回-1
替換string &replace(int pos, int n, const char *s);//刪除從pos開始的n個字元,然後在pos處插入串s
string &replace(int pos, int n, const string &s); //刪除從pos開始的n個字元,然後在pos處插入串s
void swap(string &s2); //交換當前字串與s2的值
//4
字串的查詢和替換
void main25()
//替換
string s2 = "wbm hello wbm 111 wbm 222 wbm 333";
s2.replace(0, 3, "wbm");
cout << s2 << endl;
//求itcast出現的次數
offindex = s2.find("wbm", 0);
while (offindex != string::npos)
cout << "替換以後的s2:" << s2 << endl;
}
12、string的區間刪除和插入
string &insert(int pos, const char *s);
string &insert(int pos, const string &s);
//前兩個函式在pos位置插入字串s
string &insert(int pos, int n, char c); //在pos位置 插入n個字元c
string &erase(int pos=0, int n=npos); //刪除pos開始的n個字元,返回修改後的字串
13、string演算法相關
void main27()
參考:傳智掃地僧講義 STL容器操作 stack詳解
1 stack簡介 2 stack物件的預設構造 stack採用模板類實現,stack物件的預設構造形式 stack stkt stack stkint 乙個存放int的stack容器。stack stkfloat 乙個存放float的stack容器。stack stkstring 乙個存放stri...
STL容器詳解
3.1.stl容器 1 序列式容器 sequence containers 每個元素都有固定位置 取決於插入時機和地點,和元素值無關,vector deque list vectors 將元素置於乙個動態陣列中加以管理,可以隨機訪問元素 用索引直接訪問 陣列尾部新增或移除元素非常快速。但是在中部或頭...
String用法(STL基本容器)
string c 標準庫中的string表示可變長的字串,它在標頭檔案string裡面。include string using std string 直接初始化和拷貝初始化 string s1 初始化字串,空字串 string s2 s1 拷貝初始化,深拷貝字串 string s3 i am b ...