C语言字符串的压缩编码与解码

发布时间:2024-08-30 14:03:44 作者:小樊
来源:亿速云 阅读:92

在C语言中,字符串的压缩编码和解码可以通过一些算法实现,例如Huffman编码、LZ77等。这里我们将介绍一个简单的压缩编码和解码方法:使用字符计数的方式进行压缩和解压缩。

  1. 压缩编码:
#include<stdio.h>
#include<string.h>

void compress(char *input, char *output) {
    int count = 1;
    int i, j = 0;
    for (i = 0; i < strlen(input); i++) {
        if (input[i] == input[i + 1]) {
            count++;
        } else {
            output[j++] = input[i];
            output[j++] = count + '0';
            count = 1;
        }
    }
    output[j] = '\0';
}

int main() {
    char input[] = "aaabbbcccddd";
    char output[100];
    compress(input, output);
    printf("Compressed string: %s\n", output);
    return 0;
}
  1. 解码:
#include<stdio.h>
#include<string.h>

void decompress(char *input, char *output) {
    int i, j = 0;
    for (i = 0; i < strlen(input); i += 2) {
        int count = input[i + 1] - '0';
        while (count--) {
            output[j++] = input[i];
        }
    }
    output[j] = '\0';
}

int main() {
    char input[] = "a3b3c3d3";
    char output[100];
    decompress(input, output);
    printf("Decompressed string: %s\n", output);
    return 0;
}

这个示例中,我们首先定义了一个压缩函数compress,它接受一个输入字符串input和一个输出字符串output。在压缩函数中,我们遍历输入字符串,统计连续相同字符的个数,并将字符和个数存储到输出字符串中。最后,我们定义了一个解压缩函数decompress,它接受一个输入字符串input和一个输出字符串output。在解压缩函数中,我们遍历输入字符串,根据字符和个数还原原始字符串,并将其存储到输出字符串中。

请注意,这个示例仅适用于简单的字符串压缩和解压缩。对于更复杂的压缩需求,建议使用成熟的压缩算法库,例如zlib等。

推荐阅读:
  1. golang如何调用c语言
  2. 怎么用200行C语言代码实现简易三子棋游戏

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c语言

上一篇:C语言字符串中删除特定模式的子串

下一篇:C语言字符串中查找最长无重复字符子串

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》