程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++STLstring

C++STLstring

編輯:C++入門知識

一、構造函數

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竟然點發表,保存都沒有反映,結果點錯捨棄。又得重寫一扁,
下面的不在講了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved