温馨提示×

c语言字符串压缩算法怎么应用

小亿
82
2024-05-21 09:28:26
栏目: 编程语言

在C语言中,字符串压缩算法可以通过一些简单的方法来实现。一种常见的字符串压缩算法是Run-Length Encoding(RLE)算法,即连续重复的字符被压缩成一个字符和它的重复次数。

以下是一个简单的C语言代码示例,实现了RLE算法的字符串压缩:

#include <stdio.h>
#include <string.h>

void compressString(char *str) {
    int len = strlen(str);
    char compressedStr[len*2]; // 假设压缩后的字符串长度不超过原字符串的两倍
    int count = 1;
    int j = 0;

    for (int i = 0; i < len; i++) {
        compressedStr[j++] = str[i];
        while (i + 1 < len && str[i] == str[i + 1]) {
            count++;
            i++;
        }
        compressedStr[j++] = count + '0';
        count = 1;
    }
    compressedStr[j] = '\0';

    printf("Compressed string: %s\n", compressedStr);
}

int main() {
    char str[] = "aaabbbccc";
    printf("Original string: %s\n", str);

    compressString(str);

    return 0;
}

在上面的代码中,compressString函数接受一个字符串作为输入,然后使用RLE算法对字符串进行压缩,并将压缩后的字符串打印出来。在main函数中,我们定义一个原始字符串"aaabbbccc",然后调用compressString函数对其进行压缩。

当运行这段代码时,输出为:

Original string: aaabbbccc
Compressed string: a3b3c3

这样就实现了一个简单的字符串压缩算法在C语言中的应用。您也可以根据实际需求修改算法来适应不同的压缩需求。

0