typedef int (WINAPI ICEPUB_COMPRESSFILE)(char *strFilename, char *strZipFilename);
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的乌兰网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
ICEPUB_COMPRESSFILE *icePub_compressFile = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_compressFile = (ICEPUB_COMPRESSFILE *)GetProcAddress(hDLLDrv, "icePub_compressFile");
}
if(icePub_compressFile)
icePub_compressFile("a.exe","a.Z");
if(hDLLDrv)
FreeLibrary(hDLLDrv);
typedef int (WINAPI ICEPUB_UNCOMPRESSFILE)(char *strZipFilename,char *strFilename);
ICEPUB_UNCOMPRESSFILE *icePub_uncompressFile = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_uncompressFile = (ICEPUB_UNCOMPRESSFILE *)GetProcAddress(hDLLDrv, "icePub_uncompressFile");
}
if(icePub_uncompressFile)
icePub_uncompressFile("a.Z","a.exe");
if(hDLLDrv)
FreeLibrary(hDLLDrv);
#include stdio.h
int main(void)
{
char s1[50],s2[50]={0};
int n;
scanf("%d",n);
while(n--)
{
int f;
char *p=s1, *q=s2;
int t;
scanf("%s",s1);
while(ps1+40)
{
sscanf(p, "%x",t);
if(t==0 f==0)
{
f=1;
}
else
{
sprintf(q, "%X", t);
while(*q)q++;
}
*q++=':';
p+=5;
}
*(q-1)=0;
puts(s2);
}
return 0;
}
C语言经典的无损压缩算法有:哈夫曼算法、LZ。
哈夫曼算法:
哈夫曼编码是David A. Huffman于1952年发明的一种满足对编码算法要求的一种编码算法。
哈夫曼算法是利用频率信息构造一棵二叉树,频率高的离根节点近(编码长度短),频率低的离根节点远(编码长度长),手动构造方法是先将字母按照频率从小到大排序,然后不断选择当前还没有父节点的节点中权值最小的两个,构造新的父节点,父节点的值为这两个节点值的和,直到构造成一棵二叉树。
LZ算法:
LZ算法及其衍生变形算法是压缩算法的一个系列。LZ77和LZ78算法分别在1977年和1978年被创造出来。虽然他们名字差不多,但是算法方法完全不同。这一系列算法主要适用于字母数量有限的信息,比如文字、源码等。流行的GIF和PNG格式的图像,使用颜色数量有限的颜色空间,其压缩就采用了两种算法的灵活变形应用。
首先选择一个压缩算法
然后按照算法实现压缩代码,调用接口就可以
常见的
可以使用哈夫曼编码压缩,或者使用开源的压缩代码,比如lzo,
gzip,
lzma等等。