读书人

字符串原处压缩

发布时间: 2012-12-21 12:03:49 作者: rapoo

字符串原地压缩

/* * 字符串原地压缩 * 例如:"eeeeeaaaff"压缩为"e5a3f2" */#include<stdio.h>#include<stdlib.h>#include<string.h>char *change(char *str){int count=0;char *s=str;//最坏情况下需要申请的内存空间char *t=(char *)malloc(strlen(s)*2+1);if(t==NULL){printf("create fail!\n");exit(1);}char *tt=t;while(*s!='\0'){if(s==str){count++;}else{if(*s==*(s-1)){count++;}else{*tt=*(s-1);tt++;*tt=count+'0';tt++;count=1;}}s++;}//字符串末尾的并没有添加到tt中保存,因此应该跳出循环后处理之*tt=*(s-1);tt++;*tt=count+'0';tt++;*tt='\0';return t;}int main(){char *str="eeeeeaaaff";char *result=change(str);printf("%s\n",result);return 0;}

?

读书人网 >编程

热点推荐