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