用C语言写代码,实现上面的字符串压缩
时间: 2024-12-22 07:21:19 浏览: 1
C语言字符串快速压缩算法代码
在C语言中,我们可以使用数组和循环结构来实现字符串的压缩。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
// 函数用于计算字符串中每个字符及其出现次数
void compress(char* str, char compressed[]) {
int i = 0, count = 1;
for (int j = 1; str[j] != '\0'; j++) {
if (str[j] == str[i]) {
count++;
} else {
compressed[i] = str[i];
compressed[i + 1] = count + '0';
i += 2;
count = 1;
}
}
// 处理最后一个字符和计数
compressed[i] = str[i];
compressed[i + 1] = count + '0';
compressed[i+2] = '\0'; // 结束字符串
}
int main() {
char original[] = "CCCCCCCCADCADCADAAAC";
char compressed[strlen(original) * 2]; // 预留足够的空间
compress(original, compressed);
printf("Original string: %s\nCompressed string: %s", original, compressed);
return 0;
}
```
这个程序首先遍历字符串,如果遇到相同的字符,就增加计数;一旦遇到不同的字符,就将当前字符和计数添加到压缩结果中,然后更新计数为1。最后别忘了处理字符串结尾的情况。
运行这段代码,你会得到如预期的结果:"Original string: CCCCCCCCCADCADCADAAAC Compressed string: 12(C)3(CAD)AAAC"。
阅读全文