简单一点的 直接调用系统命令
比如system("unzip ___filename___ -d target_path");
这样做 实际就相当于在命令行下敲了这样的一个命令
不过 这个要求系统内 必须安装了unzip这个软件 即支持这个命令
复杂一些的 你可以再网上找一个开源的gzip 很多很好找的 然后看懂代码 调用对应的接口函数
这样做的好处不需要依赖系统环境
B. c语言高手进 压缩与解压程序
你可以把AAA替换为A3
char* compress(char str[])
{
char c,*s;
int i,j,k,n;
n=strlen(str);
s=(char*)malloc((n+1)*sizeof(char));
for(i=0;i<=n;i++)
s[i]='\0';
for(i=0;i<n;i++)
{
c=str[i];
for(j=i+1;c==str[j];j++);
s[k++]=c;
if(j-i>1)
s[k++]='0'+j-i;
i=j;
}
return s;
}
char* decompress(char str[])
{
char c,*s,s1[100]='\0';
int i,j,k,n;
n=strlen(str);
s=s1;
for(i=0;i<n;i++)
{
c=str[i];
if(str[i+1]>='2'&&str[i+1]<='9')
{k=str[i+1]-'0';i+=2;}
for(j=0;j<k;j++,s++)*s=c;
i++;
}
s=s1;
return s;
}
上面的代码适用范围有限,文件最好只含有字母,连续重复不能超过9次,请根据需要修改
C. C语言如何直接读取压缩文件
c语言中没有直接读取压缩文件的函数包。
D. 如何用C语言解压缩文件
如果你自己设计算法,就另当别论,如果想利用第3方的算法,我推荐用zlib,生成的压缩包是流行的zip格式.源代码很好找(www.zlib.net)
E. 如何用c语言压缩解压文件夹
你是想自己写代码实现解压缩的功能,还是只是在代码中调用命令来解压,system()找到你的解压缩工具在加相应的参数
F. C语言压缩
#include <cstdio>
#include <string.h>
int main()
{
int i,n=0;
char a[105],t='0';
scanf("%s",a);
for(i=0;i<strlen(a);i++)
{
if(a[i]==t)
n++;
else
{
printf("%d ",n);
n=1;
if(t=='0')
t='1';
else
t='0';
}
if(i==strlen(a)-1)
printf("%d",n);
}
return 0;
}
G. C语言 解压缩字符串
#include<stdio.h>
intmain()
{
chars[50],s1[100];
inti=0,j=0,k,n;
gets(s);//输入压缩后的字符串
while(s[i])
{
s1[j]=s[i];
//因为形式是先字符后数字,所以第一个肯定是字符,先赋入另一个数组以便后续操作。
i++;j++;//递增,开始处理下一位的数字
n=0;
while(s[i]>='0'&&s[i]<='9')//只要是数字就要进入循环统计
{
n*=10;
n+=s[i]-'0';
i++;
}
for(k=0;k<n-1;k++)
//因为解压缩的字符已经存入数组s1,所以只剩下n-1要再放入s1
s1[j+k]=s1[j-1];
if(n>0)//注意,一定要n>0因为有可能是连续字符,本来就没被压缩这时如果还把j加上n-1就反而是让j减小了。
j+=n-1;
}
s1[j]='