行程长度压缩编码方法即相邻的字符若相同,则记录相同的次数,从而减小字符串的长度。

问题遇到的现象和发生背景

行程长度压缩编码方法RLC即相邻的字符若相同,则记录相同的次数,从而减小字符串的长度。

遇到的现象和发生背景,请写出第一个错误信息

定义函数“int rlc(char *s,DATA *dest);”实现行程长度压缩编码方法RLC。

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
    typedef struct {    
char ch;
unsigned num;
}DATA;
运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
【测试数据】:
字符串: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;
}