"eeeeeaaaff"压缩为"e5a3f2"
#include <iostream.h>
void main()
{
char ch[]="adeeeeeaaaffdeccd";
int len=sizeof(ch)/sizeof(char);
int i=1,j=0,num=1;// i用来控制字符串循环结束的,j是控制压缩字符串在压缩后的位置的,注意(j<=i)
//ch最后一个字符是结束符\0,会加到j后面
while(i<len)//依次比较每个元素与前一个元素是否相同,如果相同累加num
//否则就在pch中加入前一个字符的num数,然后加上此字符,把num恢复为1
{
if(ch[i]==ch[j])
{
num++;
}
else
{
if(num==1)
{
ch[++j]=ch[i];
}
else
{
ch[++j]='0'+num;
ch[++j]=ch[i];
num=1;
}
}
i++;
}
cout<<ch<<endl;
}