数据压缩存储(函数实现)。已知一段二进制01代码,长度小于100,以数字0开头,请试着用压缩后的方法将其显示出来。输入数据有多组。比如输入以数字0开头二进制0-1代码:000000111100011110000011,则输出为:6 4 3 4 5 2。
#include<stdio.h>
int compress(char a[],int count[])
{
int i,j=0;
for(i=0;i<100;i++) count[i]=0;
char f=a[0];
i=0;
while(a[i]!='\0')
{
**if(a[i]!=f)
{
j++;f=a[i];
}**//字符改变,count数组下标++
count[j]++; i++;
}
return j+1;
}
int main()
{
char a[100];
int count[100];
while((scanf("%s",a))!=EOF)
{
int j=compress(a,count);
for(int i=0;i<j;i++)
printf("%d ",count[i]);
printf("\n");
}
return 0;
}