假设我想删除字符串中最后一个“*”(例如)之后的所有内容。知道我可以将该字符串的以下内容视为理所当然:
- 它将始终包含一个“*”
- 它可以包含多个'*'
- 绝不会以“*”开头或结尾
什么是最干净和/或最短的方法来删除最后一个“*”之后的所有内容,加上它本身,只有基本的库?
最佳答案
根据您的假设:
s.erase(s.rfind('*'));
不假设它包含至少一个*
:
auto pos = s.rfind('*');
if (pos != std::string::npos) {
s.erase(pos);
}
关于c++ - 在最后一次出现字符后优雅地删除字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26893340/