4-25 字符串

定義:string 變量名;
賦值:
string 變量名(字符串);
string 變量名 (字符數量,字符);(字符數量個字符)
變量名 = 字符串;
等價於 變量名.assign("字符串");
輸入:
cin>>變量名;
輸出:
cout<<變量名;
字符串的長度 length()
變量名.length(); '\0'不在長度範圍內
字符串中的一個字符:
s[ i ] 等價於 s.at( i ),
都爲字符串中第i + 1個字符
注意:c++中數組下標從0開始
增加或連接:
變量名 += 字符串;
注意:
計算機中的操作爲:
1、先把原字符串拷貝下來
2、開闢新的空間並將原字符串粘貼到新空間
3、將要增加或連接的字符串接在新空間中字符串的後面
4、將變量指向新空間
5、釋放原內存
  所以如果是在循環中就可能會超時!!!
所以有一個函數來加速
變量名.append(字符串1) . append(字符串2);
等價於 變量名+=字符串1+字符串2;
江老師方法:  開一個大一點的字符數組,然後要加的就一節一節加上去.

常犯錯誤  :
變量名=字符串1 + 字符串2;  錯誤!!!
變量名=s+符串1 + 字符串2; 正確!!!
· 解析:因爲  字符串1 + 字符串2  不是在 string 類裏的,而是C語言字符串裏的
   而 s+ 就調用了 string 類,所以 s+字符串1 合法,再加字符串2 也合法了

找字符串中的子串:
變量名1 . find( 變量名 ) 或 變量名1 . find( 字符串 )
 李天祺爲我們拓展:
1、變量名1 . find( 變量名2,開始位置);
2、變量名2 . find( 變量名2,開始位置,結束位置);
如果在變量中找不到需要找的,就會返回整型值 -1 。

 
取字符串中的子串:
變量名 . substr(開始位置,取子串的長度);

字符串比較大小:
變量名1 > 或 < 或 = 變量名2 ;
按照字典序比較大小。

替換、刪除與插入:
替換:
1、 變量名1.replace(開始位置,在原字符串中要替換字符串的長度,變量名2);
2、 變量名1.replace(開始位置,在原字符串中要替換字符串的長度,要替換的字符串);
刪除:
變量名 . erase(開始位置,要刪除字符串的長度);
等價於 變量名 . replace(開始位置,在原字符串中要替換字符串的長度,""); 即字符串沒有東西
插入:
變量名1 . insert(開始位置,要插入的字符串或者變量名2);
等價於 變量名1 . replace(開始位置,0,字符串或者變量名2);.

後面又講了一下  如果不知道到底有多少行怎麼讀:

                            while (cin>>s)

                            {

                                     cout<<s;

                            }

                            



特別注意:字符串下標都從零開始,所以位置什麼的都會算上0。
程序待發……

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章