美文网首页
简单的行程编码-C语言实现

简单的行程编码-C语言实现

作者: iDucky131 | 来源:发表于2019-03-23 23:20 被阅读0次

    简单的行程编码用C语言实现,仍有很多不足,欢迎指出

    #include <stdlib.h>
    #include <stdio.h>
    #define M 100 //定义最多处理的字符数
    
    void RLE(char target[])
    {
        int Chcount = 0;  //字符计数器置为0
        int Repcount = 0; //将重复计数器置为0
        char temp;
        char ch;
        for (int i = 0; target[i] != '\0'; i++)
        {
            ch = target[i];
            Chcount++;
            if (Repcount == 0)
            {
                Repcount++;
                temp = ch;
            }
            else
            {
                if (temp == ch)
                {
                    Repcount++;
                }
                else if (Repcount >= 4) //重复四次或者多余四次时进行RLE编码
                {
                    Chcount = Chcount - Repcount - 1; //更新插入字符的位置
                    target[Chcount] = '*';
                    target[Chcount + 1] = Repcount + '0';
                    target[Chcount + 2] = temp;
                    Chcount += 3;
                    target[Chcount] = ch;
                    Chcount++;
                    Repcount = 1;
                    temp = ch;
                }
                else
                {
                    temp = ch;
                    Repcount = 1;
                }
            }
        }
        if (Repcount >= 4) //重复四次或者多余四次时进行RLE编码
        {
            Chcount = Chcount - Repcount ; //更新插入字符的位置
            target[Chcount] = '*';
            target[Chcount + 1] = Repcount + '0';
            target[Chcount + 2] = temp;
            Chcount += 3;
        }
        target[Chcount] = '\0';
    }
    
    int main()
    {
        char original[M];
        printf("Please input the code:");
        scanf("%s", original);
        RLE(original);
        for (int i = 0; original[i] != '\0'; i++)
            printf("%c", original[i]);
        system("pause");
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:简单的行程编码-C语言实现

          本文链接:https://www.haomeiwen.com/subject/lmzevqtx.html