在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: aaabbbcccCompressed string: a3b3c3
这样就实现了一个简单的字符串压缩算法在C语言中的应用。您也可以根据实际需求修改算法来适应不同的压缩需求。