1 #include <stdio.h>
2 #include <string.h>
3
4 bool compress(char *str)
5 {
6 char *p=str,c;
7 int cnt,i=0;
8
9 if(!str)return false;
10
11 p = str;
12 while(*p != '\0'){
13 cnt = 1;
14 while(*p == *(p+1)){ cnt++; p++; }
15 if(cnt != 1){
16 c = *p;
17 sprintf(&str[i],"%d",cnt);
18 i += strlen(&str[i]);
19 str[i++] = c;
20 }else str[i++] = *p;
21 p++;
22 }
23 str[i] = '\0';
24
25 return true;
26 }
27
28 int main(int argc, char* argv[])
29 {
30 char str[64] = "abbcccddddeeeeeeeeeeeeeeeffffffggggggg";
31
32 printf("%s\r\n",str);
33 compress(str);
34 printf("%s\r\n",str);
35
36 return 0;
37 }