3.3.8 使用erase()成員函數(shù)
erase()成員函數(shù)從string對(duì)象中移除指定的子字符串。調(diào)用該成員函數(shù)的一個(gè)方法是指定子字符串的起始位置和長度,如下面的代碼所示:
phrase.erase(4, 5);
此行代碼移除了從位置4開始的長度為5個(gè)字符的子字符串。因?yàn)閜hrase為"Lame Over!!!",所以該成員函數(shù)移除子字符串"Over",結(jié)果phrase變成了"Lame!!!"。
調(diào)用erase()的另一種方法是只提供子字符串的起始位置。這種方法將把從指定的起始位置開始到string對(duì)象結(jié)尾的全部字符都刪除。代碼如下所示:
phrase.erase(4);
此行代碼移除string對(duì)象中從位置4開始的全部字符。因?yàn)閜hrase為"Lame!!!",該成員函數(shù)將子字符串!!!移除,最后phrase變成"Lame"。
還有一種調(diào)用erase()的方法是不提供實(shí)參,如下面這行代碼所示:
phrase.erase();
此行代碼刪除phrase中的所有字符。因此,phrase成為了空字符串" "。
3.3.9 使用empty()成員函數(shù)
empty()成員函數(shù)返回bool型值,如果string對(duì)象為空,則返回true,否則返回false。下面的代碼使用了empty():
if (phrase.empty())
{
cout << "\nThe phrase is no more.\n";
}
因?yàn)閜hrase等于空字符串,所以phrase.empty()返回true,且屏幕顯示消息“The phrase is no more.”