for循环、字符串与数组(8)

3.3.8  使用erase()成员函数

erase()成员函数从string对象中移除指定的子字符串。调用该成员函数的一个方法是指定子字符串的起始位置和长度,如下面的代码所示:

phrase.erase(4, 5);

此行代码移除了从位置4开始的长度为5个字符的子字符串。因为phrase为"Lame Over!!!",所以该成员函数移除子字符串"Over",结果phrase变成了"Lame!!!"。

调用erase()的另一种方法是只提供子字符串的起始位置。这种方法将把从指定的起始位置开始到string对象结尾的全部字符都删除。代码如下所示:

phrase.erase(4);

此行代码移除string对象中从位置4开始的全部字符。因为phrase为"Lame!!!",该成员函数将子字符串!!!移除,最后phrase变成"Lame"。

还有一种调用erase()的方法是不提供实参,如下面这行代码所示:

phrase.erase();

此行代码删除phrase中的所有字符。因此,phrase成为了空字符串" "。

3.3.9  使用empty()成员函数

empty()成员函数返回bool型值,如果string对象为空,则返回true,否则返回false。下面的代码使用了empty():

if (phrase.empty())

{

cout << "\nThe phrase is no more.\n";

}

因为phrase等于空字符串,所以phrase.empty()返回true,且屏幕显示消息“The phrase is no more.”

读书导航