【例8-8】输入一个长度小于80的字符串,按规则对字符串进行压缩,输出压缩后的字符串。压缩规则是:如果某个字符x连续出现n(n>1)个,则将这n个字符替换为"nx"的形式;否则保持不变。
#include<stdio.h>
#define MAXN 80
#define MAXM 160
int main()
{
char str[MAXN],res[MAXM],i,k,n;
i=k=0;
while((str[i]=getchar())!='#'){
i++;
}
str[i]='\0';
i=0;
while(str[i]!='\0'){
n=1;
while(str[i]==str[i+n]){
n++;
}
if(n>1){
res[k++]=n+'0';
}
res[k++]=str[i];
i=i+n;
}
res[k]='\0';
k=0;
while(res[k]!='\0'){
putchar(res[k]);
k++;
}
return 0;
}
输入样例:qqqwaaadcxsss#
输出结果:3qw3adcx3s