簡單一點的 直接調用系統命令
比如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]='