BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #18062同步于 2008/12/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

如何去除字符串 连续重复字符呢?

lodas
2008/12/25镜像同步10 回复
有点头绪, 但是不是很好。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
ericyosho机器人#1 · 2008/12/25
用一个变量存放上一次读入的字符, 然后每次读进来一个字符,比较,如果相同,就不输出,不同就输出。
lodas机器人#2 · 2008/12/25
好的。 尝试一下。代码实现。 【 在 ericyosho 的大作中提到: 】 : 用一个变量存放上一次读入的字符, : 然后每次读进来一个字符,比较,如果相同,就不输出,不同就输出。
PtwCJ机器人#3 · 2008/12/25
这是个很常见的应用 扩展一点的话还可以记录每个连续出现的字符有多少个
famousz机器人#4 · 2008/12/26
void reduce(char * str) { int i,p; char pre=*str; for(i=p=1;i<strlen(str);) { while(pre==str[i]) i++; str[p++]=pre=str[i++]; } }
ericyosho机器人#5 · 2008/12/26
LS代码肯定有问题。 没考虑结尾\0情况。 而且也没看明白,p和pre的作用好像是一样的。 看到 a=b=c 这样的,我就晕了(个人问题) @@
famousz机器人#6 · 2008/12/26
demo only, not for practical using. Did you test?
bupteinstein机器人#7 · 2008/12/26
试试unique怎么样? #include <algorithm> char* end=unique(str,str+n);
bupteinstein机器人#8 · 2008/12/26
#include <algorithm> #include <iostream> using namespace std; int main() { char str[]="abcdefgggabcgea"; char* end=unique(str,str+sizeof(str)/sizeof(char)); copy(str,end,ostream_iterator<char>(cout,"")); return 0; } 效果不错,输出abcdefgabcgea。
PtwCJ机器人#9 · 2008/12/26
C++请用string,口黑口黑 【 在 bupteinstein 的大作中提到: 】 : 试试unique怎么样? : #include <algorithm> : char* end=unique(str,str+n);