| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4467 人关注过本帖
标题:如何实现对字符串的算术编码压缩
取消只看楼主 加入收藏
abc402934874
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-5-26
收藏
 问题点数:0 回复次数:2 
如何实现对字符串的算术编码压缩
char* getAllFileData(char*name)
{
    FILE *fp;  
    char *str;  
    char buffer[4096];  
    int filesize;  
    if ((fp=fopen(name,"r"))==NULL){  
        printf("打开文件%s错误 error=%s \n",name,strerror(errno));  
        return NULL;  
    }  
  
    fseek(fp,0,SEEK_END);  
    filesize = ftell(fp);  
    str=(char *)malloc(filesize+1);  
    memset(str,0,filesize+1);  
    rewind(fp);  
    int bufsize=sizeof(buffer);  
    //fgets函数成功将返回buf,失败或读到文件结尾返回NULL。因此我们不能直接通过fgets的返回值来判断函数是否是出错而终止的,应该借助feof函数或者ferror函数来判断。  
    while(!feof(fp)){  
        fgets(buffer,bufsize,fp);  
        strcat(str,buffer);  
    }  
    fclose(fp);  
    return str;  
}  这一段实现了对文本文件的读取。
后续如何对读取出的字符串进行算术编码压缩?有木有大手子懂得 求解!
搜索更多相关主题的帖子: return 字符串 如何 
2017-05-26 15:02
abc402934874
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-5-26
收藏
得分:0 
回复 2楼 吹水佬
那我不清楚其中的字符概率能用算术编码压缩吗 我看了一些用c++的 都需要知道字符出现概率来进行压缩
2017-05-27 13:47
abc402934874
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-5-26
收藏
得分:0 
以下是引用吹水佬在2017-5-28 07:13:43的发言:


“字符出现概率”是按每次出现时字符概率分布区域来处理,说来话长,难以言语表达。
看看“算术编码”算法应该会明白,“算术编码”算法不难理解。

谢谢 已经弄明白了
2017-05-29 11:26
快速回复:如何实现对字符串的算术编码压缩
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026923 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved