伊莉討論區
標題:
如何對ASCII碼進行RLE編碼
[打印本頁]
作者:
bright2
時間:
2011-12-23 10:32 AM
標題:
如何對ASCII碼進行RLE編碼
最近有想用C做ASCII碼進行RLE編碼
但目前卡在轉了ASCII碼
但不知道怎樣做RLE編碼
RLE:Run Length Encoding (遊程長度編碼)
ABBBBBBBBBC---->A8BC
希望可以獲得幫助~3Q
作者:
B1DE49FC
時間:
2011-12-23 11:32 AM
一次讀一個字元
讀到相異的字元再來做輸出
不知道是不是你要的
void scan(){
if( in[index] != '\0' ){
if( in[index] == ch ){
count++;
index++;
scan();
}else{
print();
count=1;
ch = in[index];
index++;
scan();
}
}else{
print();
}
}
完整程式碼請參考附加檔案
[attach]67787755[/attach]
作者:
kaworucloud
時間:
2011-12-23 06:34 PM
發現你的範例明明有 9 個 B 卻要顯示 8B?
int main(){
char* szData = "ABBBBBBBBBC";
char lastChar = szData[0];
int counter = 0;
for( int i=0; szData[i]; ++i ){
if( szData[i] == lastChar ){
++counter;
}
else{
if( counter > 1 ){
cout << counter;
}
cout << lastChar;
lastChar = szData[i];
counter = 1;
}
}
if( counter > 1 ){
cout << counter;
}
cout << lastChar;
return 0;
}
複製代碼
歡迎光臨 伊莉討論區 (http://a401.file-static.com/)
Powered by Discuz!