在C语言中,字符串压缩的方法可以通过将重复字符替换为字符及其重复次数的方式来实现。以下是一个简单的字符串压缩代码示例:
#include <stdio.h>
#include <string.h>
void compressString(char *str) {
int length = strlen(str);
char compressed[length * 2]; // 假设压缩后的字符串长度不会超过原字符串的两倍
int count = 1;
int j = 0;
for (int i = 0; i < length; i++) {
compressed[j++] = str[i]; // 将字符复制到压缩字符串中
while (i + 1 < length && str[i] == str[i + 1]) {
count++; // 统计重复字符的次数
i++;
}
if (count > 1) {
compressed[j++] = count + '0'; // 将重复次数转换为字符
count = 1;
}
}
compressed[j] = '\0'; // 添加字符串结束标志
printf("Compressed string: %s\n", compressed);
}
int main() {
char str[] = "aabbbccccddddd";
compressString(str);
return 0;
}
在上面的示例中,我们定义了一个compressString
函数用于对字符串进行压缩。它遍历输入字符串,并将重复字符替换为字符及其重复次数。最后,打印出压缩后的字符串。
请注意,这只是一个简单的字符串压缩实现方法,实际应用中可能需要更复杂的算法来实现更高效的字符串压缩。