1.游程编码概念
游程编码又称“运行长度编码”或“行程编码”,是一种统计编码,该编码属于无损压缩编码。
2.基本原理
用一个符号值和串长代替具有相同值的连续符号,使符号长度少于原始数据的长度。
如: 原始文本:dfffffeeeeettttrrrrttttt
游程编码后文本:d1f5e5t4r4t5
3.代码示例
1 #include <stdio.h>
2 #include <string.h>
3 int main()
4 {
5 char textBefore[100] ="dfffffeeeeettttrrrrttttt";
6 char textAfter[100];
7 memset(textAfter,0,sizeof(textAfter));
8
9 char c;
10 int num,i,j;
11 for(i=0;i<strlen(textBefore);){
12 c = textBefore[i]; ///临时保存字符
13 num = 1; ///保存个数
14 for(j=i+1;j<strlen(textBefore);j++){
15 if(c == textBefore[j])
16 num++;
17 else
18 break;
19 }
20 i = j;
21
22 sprintf(textAfter,"%s%c",textAfter,c);
23 sprintf(textAfter,"%s%d",textAfter,num);
24 }
25 printf("textBefore : %s\n",textBefore);
26 printf("textAfter : %s\n",textAfter);
27 return 0;
28 }
代码输出:
参考:
http://zh.wikipedia.org/wiki/%E6%B8%B8%E7%A8%8B%E7%BC%96%E7%A0%81
http://baike.baidu.com/view/721796.htm?fr=aladdin
(方法简单也是有名字的)
时间: 2024-10-29 17:06:47