在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
函數用于對字符串進行壓縮。它遍歷輸入字符串,并將重復字符替換為字符及其重復次數。最后,打印出壓縮后的字符串。
請注意,這只是一個簡單的字符串壓縮實現方法,實際應用中可能需要更復雜的算法來實現更高效的字符串壓縮。