用一个char替换字符串中的多个字符

时间:2011-12-24 16:08:38

标签: c++ stl

用一个char替换字符串中多个字符的最佳方法是什么?

string str("1   1     1");

//out: 1 1 1

1 个答案:

答案 0 :(得分:8)

str.erase(
    std::unique(str.begin(), str.end()),
    str.end());

这不仅仅适用于空间。例如,字符串“aaabbbcccddd”将变为“abcd”。那是你要的吗?如果您只想将空格减少到一个空格,可以将二元谓词作为第三个参数传递给std::unique,如下所示:

bool BothAreSpaces(char lhs, char rhs)
{
    return (lhs == ' ') && (rhs == ' ');
}