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程序算法设计的学习有一定的借鉴价值。