行程长度压缩编码方法RLC即相邻的字符若相同,则记录相同的次数,从而减小字符串的长度。
定义函数“int rlc(char *s,DATA *dest);”实现行程长度压缩编码方法RLC。
typedef struct {
char ch;
unsigned num;
}DATA;
【测试数据】:
字符串:aaaaabbbbcccddddaafff
【运行结果】
转换后的字符串:a5b4c3d4a2f3
对应的代码实现和测试代码如下,望采纳
#include <stdio.h>
#include <string.h>
typedef struct {
char ch;
unsigned num;
}DATA;
int rlc(char *s, DATA *dest)
{
int len = 0;
int i = 0;
while (s[i] != '\0')
{
dest[len].ch = s[i];
dest[len].num = 1;
while (s[i] == s[i + 1])
{
dest[len].num++;
i++;
}
i++;
len++;
}
return len;
}
int main()
{
char s[] = "aaaaabbbbcccddddaafff";
DATA dest[100];
int len = rlc(s, dest);
int i;
for (i = 0; i < len; i++)
{
printf("%c%d", dest[i].ch, dest[i].num);
}
printf("\n");
return 0;
}