假设我想从字符串中删除最后一个 '*'(例如),并保留此字符串的以下特点:
- 它将始终包含一个 '*'
- 它可能包含多个 '*'
- 它永远不会以 '*' 开头或结尾
鉴于你的假设:
s.erase(s.rfind('*'));
没有假设它包含至少一个*
:
auto pos = s.rfind('*');
if (pos != std::string::npos) {
s.erase(pos);
}