马上要毕业了,最近一段时间一直看一些c语言基础的东东。打算从今天开始把最近的一些所得写出来和大家分享。今天先写一段关于字符串压缩的程序。
简单来说就是,把一段如"aaaaabcccddde“,写成“a5b1c3d3e1”的字符串。代码如下
void yasu(char *s)
{
char *p;
char reschar[100];//存放压缩后的字符串
memset(reschar,NULL,sizeof(reschar)); //字符串赋值为空
p=s;
int count=1;
int k=0;
int len=strlen(s);
for (int i=0;i<=len-1;i++)
{
if(p[i+1]==p[i])
{
count++;
}
else
{
//sprintf(reschar+strlen(reschar),"%c%d",p[i],count);
if ((count>=10)&&(count<100))
{
int d1=count%10;
int d2=(count/10)%10;
reschar[k++]=d2+'0';
reschar[k++]=d1+'0';
}
else
{
reschar[k++]=count+'0';
}
// itoa(count,reschar[k++],10);
count=1;
}
}
printf("%s\n",reschar);
}
如有问题,请提问