简单的字符串压缩--C代码

 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 }

 

posted on 2013-12-30 16:51  colife  阅读(478)  评论(0编辑  收藏  举报