用一个char替换字符串中多个字符的最佳方法是什么?
string str("1 1 1");
//out: 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 == ' ');
}