中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言字符串的壓縮編碼與解碼

發布時間:2024-08-30 14:03:44 來源:億速云 閱讀:91 作者:小樊 欄目:編程語言

在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等。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

韩城市| 鲁山县| 镇安县| 会昌县| 贡觉县| 玉树县| 平罗县| 玉田县| 水富县| 西昌市| 阜新市| 江孜县| 旌德县| 凌源市| 双牌县| 廊坊市| 上高县| 娱乐| 久治县| 安远县| 莎车县| 宜兴市| 商洛市| 双柏县| 宣化县| 城市| 台中市| 巴林右旗| 徐汇区| 灵宝市| 福海县| 枣强县| 于田县| 织金县| 赣州市| 辉南县| 甘谷县| 潮州市| 营口市| 华蓥市| 英吉沙县|