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

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

行程长度压缩编码方法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;
}