一、構造函數
1)、 string s;//創建一個空的字符串,相當於string s("");
2)、 string s1("hehe"); //<=>char charArray[] = "hehe"; string s1(charArray);用字符數組初始化
3)、 string s2("hehe", 2);//使用“hehe”的前兩個字符來初始化S2
4)、 string s3(s2);//直接使用string對象s2來初始一個新的對象,調用復制構造函數
5)、 string s4(s1, 1, 2);//格式是string s4(s1, pos, n);用s1對象的從pos位置開始的n個字符來初始化
6)、 string s5(5, 'h');//格式string s5(n, ch);用n個字符ch來初始化一個string對象
7)、 string s6(s5.begin(), s5.end());//使用迭代器來指定一個范圍內的元素來初始化一個對象
二、輸入輸出
1)、getline(cin, str);//從cin對象中提取一個串給str對象,直到遇到回車或者文件尾才結束
2)、cin >> str; //直接讀取一個串,但是遇到空格、TAB、回車、文件尾就結束
3)、cout << str;//可以直接輸出,因為<<已經被重載
三、重載操作符
1)、<、 <=、>、>=、 ==、!= //可以直接使用來進行兩個串的比較
2)、str = val; //賦值操作,val 可以是數組,string對象,字符串常量,但是不能是單個字符
3)、str += val; //字符串連接,把val接在str的後面,val可以是數組,string對象、字符串常量、單個字符
4)、str = val1 + val;//只要val、val1兩者中有一個是string對象,就可以完成連接
5)、str[index];//使用下標訪問單個字符:
四、常用的成員函數
1、----------------------------------------append()成員函數----------------------------------------------
1)、s.append(str);//參數為一個string對象
如:
string s;
string s1("hehe");
s.append(s1);
cout << s << endl;//打印hehe
2)、s.append(str, pos, n);//將str的從pos位置開始的n個字符追加到s的末尾
如:
string s;
string s1("hehe");
s.append(s1, 1, 2);
cout << s << endl;//打印eh
3)、s.append(charArray);//這個不多說,跟第一個差不多
4)、s.append(charArray, n);//看第二個來比較一下應該就知道了吧
如:
string s;
char ch[] = "hehe";
s.append(ch, 2);
cout << s << endl;//打印he
5)、s.append(n, ch);//在s的末尾追加n個字符ch,這個不舉例了,很簡單的
2、----------------------------assign()成員函數----------------------------
1)、s1.assign(s);//將s的備份復制給s1
如:
string s("hehe");
string s1;
s1.assign(s);
cout << s1 << endl;//打印hehe
2)、s.assign(str, pos, n);//將str的從pos位置開始的n個字符復制給s,這個不舉例,很容易看懂的
3)、s.assign(charArray);
4)、s.assign(charArray, n);//要n字符而已
5)、s.assign(n, ch);//跟append(n, ch)比較
6)、s.assign(str.begin(), str.end());//用迭代器指定一個范圍來復制給s
3、------------------------compare()成員函數----------------------------------------------------------------------
注:下面這些除了不容易理解的會給出例子之外,其他都不多說
說明:比較的原理是按照字典順序,逐個比較的,如果s > str,返回正數,
如果s < str,返回負數; 如果s == str,返回0
1)、s.compare(str); //s與str比較
2)、s.compare(charArray);//s與charArray比較
3)、s.compare(pos, n, str);//s與str中從pos開始的N個字符比較
4)、s.compare(pos, n, charArray);//s與charArray中從pos開始的N個字符比較
5)、s.compare(pos1, n1, str, pos2, n2);//s中從pos1位置開始的n1個字符與str中從pos2開始的n2個字符比較
6)、s.compare(pos1, n1, charArray, pos2, n2);//s中從pos1位置開始的n1個字符與charArray中從pos2開始的n2個字符比較
4、------------------------c_str()、data()成員函數----------------------------------------------------------------------
1)、s.c_str();//返回以'\0'結束的C風格字符數組
2)、s.data();//返回不以'\0'結束的字符數組
5、------------------------erase()成員函數----------------------------------------------------------------------
1)、s.erase(pos, n);//刪除從pos開始的n個字符
如:
string s("hehe");
s.erase(2, 2);
cout << s << endl;//打印he
2)、s.erase(iter);//刪除迭代器iter指定的字符
6、------------------------clear()、empty()、capacity()成員函數----------------------------------------
1)、s.empty();//判斷串是否為空
2)、s.clear();//使s成員空串
3)、s.capacity();//返回串s的容量
7、------------------------find()成員函數-------------------------------------------------------------------------
1)、s.find(str, pos);//在s中從pos位置開始匹配,匹配到就返回第一個匹配到的位置,否則返回string::npos
2)、s.find(charArray, pos);//在s中從pos位置開始匹配,匹配到就返回第一個匹配到的位置,否則返回string::npos
3)、s.find(charArray, pos, n);//在s中從pos位置開始匹配,最多匹配n個字符,匹配到就返回第一個匹配到的位置,否則返回string::npos
8、------------------------find_first_of()成員函數--------------------------------------------------------------
1)、s.find_first_of(str, pos);//從s的pos位置開始匹配,返回任意一個匹配到的字符的位置,否則返回npos
2)、s.find_first_of(ch, pos);//從s的pos位置開始匹配,返回第一個與ch匹配的字符的位置,否則返回npos
3)、s.find_first_of(charArray, pos);//從s的pos位置開始匹配,返回任意一個匹配到的字符的位置,否則返回npos
4)、s.find_first_of(charArray, pos, n);//從s的pos位置開始匹配,最多匹配n個字符,返回任意一個匹配到的字符的位置,否則返回npos
9、------------------------find_first_not_of()成員函數--------------------------------------------------------------
1)、s.find_first_not_of(str, pos);//從s的pos位置開始匹配,返回任意一個沒有匹配到的字符的位置,否則返回npos
2)、s.find_first_not_of(charArray, pos);//從s的pos位置開始匹配,返回任意一個沒有匹配到的字符的位置,否則返回npos
3)、s.find_first_not_of(charArray, pos, n);//從s的pos位置開始匹配,最多匹配n個字符,返回任意一個沒有匹配到的字符的位置,否則返回npos
4)、s.find_first_not_of(ch, pos);//從s的pos位置開始匹配,返回第一個與ch不匹配的字符的位置,否則返回npos
10、------------------------find_last_of()成員函數--------------------------------------------------------------
1)、s.find_last_of(str, pos);//返回最後一個匹配到的任意一個字符的位置
2)、s.find_last_of(charArray, pos, n);//返回最後一個匹配到的任意一個字符的位置,匹配從pos位置開始,最多匹配n個字符
11、------------------------find_last_not_of()成員函數--------------------------------------------------------------
1)、s.find_last_not_of(str, pos);//返回最後一個沒有匹配到的任意一個字符的位置
2)、s.find_last_not_of(charArray, pos, n);//返回最後一個沒有匹配到的任意一個字符的位置,匹配從pos位置開始,最多匹配n個字符
3)、s.find_last_not_of(ch, pos);//返回最後一個與ch不匹配的任意一個字符的位置
4)、s.find_last_not_of(charArray, pos);//返回最後一個沒有匹配到的任意一個字符的位置
//這裡不在書寫其他了,真沒有心情了。我真的很想生氣,這CSDN竟然點發表,保存都沒有反映,結果點錯捨棄。又得重寫一扁,
下面的不在講了。