在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語言中的應用。您也可以根據實際需求修改算法來適應不同的壓縮需求。