本文出自:【徐xiho的部落格】
c++ 提供的string類包含了若干實用的成員函式,大大方便了字串的增加、刪除、更改、查詢等操作。
插入字串
insert()函式可以在string字串中置頂的位置插入另乙個字串,它的原型為:
string
& insert (size_t pos, const
string
& str);
看這個插入的格式我們就能猜想到,pos表示要插入的下標;str表示要插入的字串,它可以是string變數,也可以是c風格的字串。
看下面的**:
#include
#include
using
namespace
std;void
main()
執行結果:
12345aaa67890
12345bbb67890
請按任意鍵繼續. . .
insert()函式的第乙個引數有越界的可能,如果越界,則會產生執行時異常。我惡魔你要捕獲這個異常。
刪除字串
erase()函式可以刪除string變數中的乙個字串,原型為:
string
& erase
(size_t pos = 0
, size_t len
= npos);
pos 表示要刪除的子字串的起始下標,len表示要刪除子字串的長度。如果不指明len的話,那麼直接刪除pos到字串結束處的所有字元(此時len =str.length-pos)。
示例**如下:
#include
#include
using
namespace
std;void
main()
執行結果:
1234567890
12345
1234590
請按任意鍵繼續. . .
在 pos 引數沒有越界的情況下, len 引數也可能會導致要刪除的子字串越界。但實際上這種情況不會發生,erase() 函式會從以下兩個值中取出最小的乙個作為待刪除子字串的長度:
簡單的說,就是待刪除字串最多只能刪除到字串結尾。
提取字串
substr()函式原型為:
string
substr (size_t pos = 0
, size_t len
= npos) const
;
pos為要提取的子字串的起始下標,len為要提取的子字串的長度。
#include
#include
using
namespace
std;void
main()
輸出結果為:
first
second
third
second
請按任意鍵繼續. . .
系統對 substr() 引數的處理和 erase() 類似:
字串的查詢
find()函式
find()函式用於string字串中查詢子字串出現的位置,它的原型為:
size_t find (const
string
& str, size_t pos = 0
) const
;size_t find (const
char
* s, size_t pos = 0
) const
;
第乙個引數的表示為待查詢的子字串,它可以是string變數,也可以是c風格的字串,第二個引數表示開始查詢的位置(下標);
/字串查詢替換
void
main()
cout
<< num << endl;
system("pause"
);}
輸出結果為:
6
找到的索引:0
找到的索引:13
2請按任意鍵繼續. . .
rfind()函式
rfind() 和 find() 很類似,同樣是在字串中查詢子字串,不同的是 find() 函式從第二個引數開始往後查詢,而 rfind() 函式則最多查詢到第二個引數處,如果到了第二個引數所指定的下標還沒有找到子字串,則返回乙個無窮大值4294967295。
#include
#include
using
namespace
std;void
main()
執行的結果為:
found at
index : 6
請按任意鍵繼續. . .
find_first_of() 函式
find_first_of() 函式用於查詢子字串和字串共同具有的字元在再輔傳中首先出現的位置。
#include
#include
using
namespace
std;int
main()
執行結果為:
found at
index : 3
s1 和 s2 共同具有的字元是 』s』,該字元在 s1 中首次出現的下標是3,故查詢結果返回3。
個人主頁:xuhaoblog.com
字串的增刪改查
ios 開發中一些字串的處理 增 nsmutablestring str nsmutablestring alloc init str insertstring atindex 4 str insertstring atindex 7 nslog str 2016 12 12 1,新建乙個 nsmu...
字串操作 增 刪 改 查
1 使用 的方法 s1 hello my name is format world python貓 print s1 s2 hello my name is format world python 貓 print s2 s3 hello my name is format name1 world n...
演算法 字串增刪改匹配問題
給你兩個單詞 word1 和 word2,請你計算出將 word1 轉換成 word2 所使用的最少運算元 你可以對乙個單詞進行如下三種操作 插入乙個字元 刪除乙個字元 替換乙個字元 leetcode 解題思路 動態規劃。首先建立狀態表示陣列,通過乙個二維陣列,表示兩個字串,在各自不同的長度下,產生...