天天看點

C++STLstring11、------------------------find_last_not_of()成員函數--------------------------------------------------------------

一、構造函數

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的末尾

    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);

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個字元

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竟然點發表,儲存都沒有反映,結果點錯舍棄。又得重寫一扁,

下面的不在講了。