C语言字符串原地压缩实现方法
本文实例讲述了C语言字符串原地压缩的实现方法,对于学习字符串操作的算法设计有不错的借鉴价值。分享给大家供大家参考。具体方法如下:
字符串原地压缩示例:"eeeeeaaaff"压缩为"e5a3f2"
具体功能代码如下:
/* *Copyright(c)2011alexingcool.AllRightsReserved. */ #include<iostream> #include<iterator> #include<algorithm> usingnamespacestd; chararray[]="eeeeeaaaff"; chararray2[]="geeeeeaaaffg"; constintsize=sizeofarray/sizeof*array; constintsize2=sizeofarray2/sizeof*array2; voidcompression(char*array,intsize) { inti=0,j=0; intcount=0; while(j<size){ count=0; array[i]=array[j]; while(array[j]==array[i]){ count++; j++; } if(count==1){ i++; } else{ array[++i]='0'+count; ++i; } } array[i]=0; } voidmain() { compression(array,size); cout<<array<<endl; compression(array2,size2); cout<<array2<<endl; }
相信本文所述对大家C程序算法设计的学习有一定的借鉴价值。