C语言字符串压缩,字符串压缩算法 c语言(用c语言实现字符串压缩)
字符串压缩算法是一种用于减少字符串存储空间的方法,在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
作为参数,它使用两个指针i
和j
分别遍历原始字符串和压缩后的字符串,通过比较当前字符与下一个字符是否相同,来更新连续相同字符的数量count
,当遇到不同的字符时,将连续相同字符的数量和第一个字符一起存储到压缩后的字符串中,处理最后一个字符并添加字符串结束符,在main
函数中,我们定义了一个原始字符串和一个压缩后的字符串缓冲区,然后调用compressString
函数进行压缩,并输出压缩后的字符串。
版权声明
本文仅代表作者观点,不代表博信信息网立场。