对于字符串,如何删除重复的字符
For strings, how do I remove repeated characters?
我想要的字符串操作过程:如果一个字符有多个连续实例,只保留第一个字母。给定"Steelsmith",删除第一个"e",留下字符串"Stelsmith"。
这是我的算法:
void replace(string s)
{
int length = s.length();
for (int i = 0; i < length; i ++)
{
if (s[i] == s[i + 1])
{
s.erase(1+i);
}
}
cout << s << endl;
}
当我输入"Steelsmith"时,输出是"Ste",所以它删除了第二个"e",以及字符串的其余部分。如何保留原始字符串的其余部分?
您可以使用内置方法进行如下编码:
s.erase(std::unique(s.begin(), s.end()), s.end());
使用形式:string& erase (size_t pos = 0, size_t len = npos);
自变量是位置和长度:
s.erase( i+1 , 1 ) ;
你可以在这里看到它的作用:http://ideone.com/GhWoi0
相关文章:
- 正在从C++中的字符数组中删除字符
- 从字符串中删除字符
- 如果不是十六进制,则QT从qlineedit中删除字符
- 从长字符串中删除字符
- 从文件对象的当前位置删除字符
- C++ 删除字符**
- 从字符串中删除字符的第一个和最后一个实例
- 如何在C++中删除字符*数组
- 如何从C 中的字符串中删除字符
- 用“ strcpy”在2D数组中删除(字符)的一行(字符)时是否存在任何错误
- 删除字符并在字符串(C )的末端附加它们
- C++ 字符串,用于删除字符'b'并将字符'a'替换为两个'd'的构建函数
- 在字符串中的定界符之间删除字符
- 从 std::字符串中删除字符从 "(" 到 ")" 用擦除?
- 使用擦除和删除从字符串中删除字符
- C++ 如何删除字符中的双引号
- C++ 中的密码 |打印字符后删除字符
- C++在链表中插入和删除字符
- 字符串流的获取函数不删除字符
- 删除字符C++最后一次出现时字符数组的开头