写一个函数实现字符串的压缩存储,实现如下 求解!
4、 写一个函数实现字符串的压缩存储,函数原型为 void fun(char *str),假设输入字符串只含字母,压缩方式为:如果字符串中出现连续相同字符,则存储为字符的重 复次数+字符本身,如果字母不连续出现,则存储源字符,例如:strStr = “ABBCCCDBB”, 则压缩后的字符串为 “A2B3CD2B”。
地址一个一个移动遍历操作,出现相邻位置出现相同的添加标示量标示个数!
然后复写到一个buf里!
不是很难
[解决办法]
这道题属于基本题,两层循环,第二层循环里判断当前元数后面有几个与当前元数相同,并记录个数cnt,然后第一层循环里的计数变量跳过cnt+1,重复直至最后,代码不提交了,自己写写,很简单
[解决办法]
这个比较简单,应该自己先尝试做一下,做的不对了再把代码贴出来,让别人帮你一起修改。
[解决办法]
void f(char *str)
{
char *des=malloc(100*sizeof(char));
char *s=des;
int cnt=0;
while(*str)
{cnt++;
str++;
if(*str!=*(str-1))
{
*des=*(str-1);
des++;
*des=cnt+0x30;
des++;
cnt=0;
}
}
printf("%s",s);
}
void main()
{
char *str = "ABBCCCDBB";
f(str);
}