字符串压缩字符串压缩

需要提交代码片段交自己的代码片段并且函数声明已经包含在主程序中 不需要自己定义 只需要定义自己的函数代码

“Devil组”引证GPT后的撰写:
C语言的字符串压缩函数代码


void compress(char* str) {
    int len = strlen(str);
    if (len == 0) return;

    char curr = str[0];
    int count = 1;
    int j = 0;
    for (int i = 1; i < len; i++) {
        if (str[i] == curr) {
            count++;
        } else {
            str[j++] = curr;
            if (count > 1) {
                char count_str[10];
                sprintf(count_str, "%d", count);
                int count_len = strlen(count_str);
                for (int k = 0; k < count_len; k++) {
                    str[j++] = count_str[k];
                }
                count = 1;
            }
            curr = str[i];
        }
    }
    str[j++] = curr;
    if (count > 1) {
        char count_str[10];
        sprintf(count_str, "%d", count);
        int count_len = strlen(count_str);
        for (int k = 0; k < count_len; k++) {
            str[j++] = count_str[k];
        }
    }
    str[j] = '\0';
}

将传入的字符串进行压缩,如将 "aaabbbccc" 压缩成 "a3b3c3"。该函数使用了字符计数器的方法实现压缩。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^