糯米文學吧

位置:首頁 > 計算機 > C語言

C語言字符串快速壓縮算法代碼

C語言1.85W

大家知道C語言字符串快速壓縮算法是怎麼樣的嗎?下面小編為大家整理了C語言字符串快速壓縮算法代碼,希望能幫到大家!

C語言字符串快速壓縮算法代碼

通過鍵盤輸入一串小寫字母(a~z)組成的字符串。

請編寫一個字符串壓縮程序,將字符串中連續出席的`重複字母進行壓縮,並輸出壓縮後的字符串。

 壓縮規則:

1、僅壓縮連續重複出現的字符。比如字符串”abcbc”由於無連續重複字符,壓縮後的字符串還是”abcbc”。

2、壓縮字段的格式為”字符重複的次數+字符”。例如:字符串”xxxyyyyyyz”壓縮後就成為”3x6yz”。

示例

輸入:“cccddecc” 輸出:“3c2de2c”

輸入:“adef” 輸出:“adef”

輸入:“pppppppp” 輸出:“8p”

主要説來就是進行字符串處理類的問題,主要涉及到:

1.字符串的輸入與輸出;

2.基本常用的C語言的字符串的函數使用;

3.對於多重情況的考慮;

4.將數字轉換成字符串並進行拼接;

複製代碼 代碼如下:

#include

#include

#include

int main()

{

char str[100] = {'};

char res[100] = {'};

scanf("%s",str);

int length = strlen(str);

int i=0, j=0, k=0;

int count = 0;

do

{

if(i < length && str[i++] == str[j])

count++;

if(str[i] != str[j])

{

if(count <= 1)

res[k++] = str[j];

else

{

if(count > 1)

{

char temp[10] = {'};

itoa(count,temp,10);

strcpy(res+k,temp);

k+=strlen(temp);

res[k++] = str[j];

}

}

j = i;

count = 0;

}

}while(i<length);

res[k] = ';

printf("The result is : %sn",res);

return 0;

}