您好,登錄后才能下訂單哦!
在C語言中,字符串的壓縮編碼和解碼可以通過一些算法實現,例如Huffman編碼、LZ77等。這里我們將介紹一個簡單的壓縮編碼和解碼方法:使用字符計數的方式進行壓縮和解壓縮。
#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;
}
#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等。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。