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.”