实现功能:
"aaabbbccddef"="3a2b2c2def"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void compress(char *str)
{
if(str==NULL)printf("error\n"),exit(-1);
char*i,*j;
int k;
i=j=str;
char str1[strlen(str)];
memset(str1,0,sizeof(str1));/*清零*/
while(*j!='\0')
{
while(*i==*(j+1))j++;
/*找出*j和*i的相同的区间*/
if(j>i)sprintf(str1+strlen(str1),"%d",j-i+1);
/*往字符串的后面写*/
k=strlen(str1);
str1[k]=*i;//将该元素保存
i=++j;//i和j都指向下一个元素
}
strcpy(str,str1);
}
int main()
{
char str[]="aaabbccddeeffsdfsaddffaa";
compress(str);
printf("%s\n",str);
}