用一个字符替换字符串中的多个字符的最佳方法是什么?
string str("1 1 1");
//out: 1 1 1
最佳答案
str.erase(
std::unique(str.begin(), str.end()),
str.end());
不过,这不仅仅适用于空间。例如,字符串“aaabbbcccddd”将变为“abcd”。那是你要的吗?如果您只想将空格减少为一个空格,您可以将二元谓词作为第三个参数传递给 std::unique
,如下所示:
bool BothAreSpaces(char lhs, char rhs)
{
return (lhs == ' ') && (rhs == ' ');
}
关于c++ - 用一个字符替换字符串中的多个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8625549/