简单的字符串压缩--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 }