学堂 学堂 学堂公众号手机端

C语言字符串压缩,字符串压缩算法 c语言(用c语言实现字符串压缩)

lewis 3年前 (2022-07-29) 阅读数 4 #技术

字符串压缩算法是一种用于减少字符串存储空间的方法,在C语言中,可以使用以下步骤实现字符串压缩:

1、遍历字符串,找到连续的相同字符序列。

2、记录连续相同字符的数量。


3、将连续相同字符的数量和第一个字符一起存储。

4、重复步骤13,直到字符串结束。

下面是一个使用C语言实现字符串压缩的示例代码:

#include <stdio.h>
#include <string.h>
void compressString(char* str, char* compressedStr) {
    int count = 1; // 连续相同字符的数量
    int i = 0; // 当前字符的位置
    int j = 0; // 压缩后字符串的位置
    while (str[i] != '') {
        // 如果当前字符与下一个字符相同,则增加计数器
        if (str[i] == str[i + 1]) {
            count++;
        } else {
            // 将连续相同字符的数量和第一个字符一起存储到压缩后的字符串中
            compressedStr[j++] = str[i];
            compressedStr[j++] = count + '0'; // 将计数器转换为字符并存储
            count = 1; // 重置计数器
        }
        i++;
    }
    // 处理最后一个字符
    compressedStr[j++] = str[i];
    compressedStr[j++] = count + '0'; // 将计数器转换为字符并存储
    compressedStr[j] = ''; // 添加字符串结束符
}
int main() {
    char str[] = "aaaabbbbccccc"; // 原始字符串
    char compressedStr[100]; // 压缩后的字符串缓冲区
    compressString(str, compressedStr); // 调用压缩函数
    printf("Compressed string: %s
", compressedStr); // 输出压缩后的字符串
    return 0;
}

上述代码中,compressString函数接受一个原始字符串str和一个用于存储压缩后字符串的缓冲区compressedStr作为参数,它使用两个指针ij分别遍历原始字符串和压缩后的字符串,通过比较当前字符与下一个字符是否相同,来更新连续相同字符的数量count,当遇到不同的字符时,将连续相同字符的数量和第一个字符一起存储到压缩后的字符串中,处理最后一个字符并添加字符串结束符,在main函数中,我们定义了一个原始字符串和一个压缩后的字符串缓冲区,然后调用compressString函数进行压缩,并输出压缩后的字符串。

版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门