當前位置:首頁 » 文件管理 » c語言壓縮

c語言壓縮

發布時間: 2024-01-14 14:03:15

1. c語言壓縮包怎樣改成中文

1、首先,需要利用C語言的宏。
2、其次,將一些常見的英文表達。
3、然後,通過define,轉化為中文。壓縮包就是將初始文件經過壓縮形成的文件,壓縮文件內存更小,可以將多個文件壓縮成一個文件。

2. 使用C語言實現字元串的壓縮。

/*
原串:111225555
壓縮後:312245
原串:333AAAbbbb
壓縮後:333A4b
原串:ASXDCdddddd
壓縮後:1A1S1X1D1C6d
Pressanykeytocontinue
*/
#include<stdio.h>
#include<string.h>

char*CompressStr(chars[]){
chart[255];
inti=0,j,k=0;
while(s[i]){
j=i+1;
while(s[i]==s[j])++j;
t[k++]=j-i+'0';
t[k++]=s[i];
i=j;
}
t[k]='';
strcpy(s,t);
returns;
}

intmain(void){
chari,s[][20]={"111225555","333AAAbbbb","ASXDCdddddd"};
for(i=0;i<3;++i){
printf("原串:%s ",s[i]);
printf("壓縮後:%s ",CompressStr(s[i]));
}
return0;
}

3. 如何用C語言實現數據壓縮

首先你要熟悉套接字的使用,然後要對ftp協議,
包括其中的數據包,通信過程有一定了解。
c語言開發網路程序一般都是用socket套接字這一套函數,你可以去看看資料

4. 如何用c語言壓縮解壓文件夾

你是想自己寫代碼實現解壓縮的功能,還是只是在代碼中調用命令來解壓,system()找到你的解壓縮工具在加相應的參數

5. 用C語言編程:一個簡單的數據壓縮程序(急!!!)

#include"stdio.h"
int c1(char a[],int i)
{int c=1;
while(a[i+1]==a[i])
{c++;i++;}
return c;
}

int c2(char a[],int i)
{int c=0;
while(a[i+1]!=a[i])
{c++;i++;}
return c;
}

int len(char a[])
{ int i=0;
while(a[i]!='\0')
i++;
return i;
}

main()
{char b[100];
char a[100]={'5','5','5','8','1','3','胡此9','9','9','9','7','2','7','2','6','6','6'};
int i=0,j=0,k=0,s,c;
while(a[i]!='褲鏈迅\0')
{
if(a[i+1]==a[i])
{
c=c1(a,i);
b[j]=c;
b[j+1]=a[i];
i++;j++;
}
else
{ c=c2(a,i);
b[j]=-c;
for(k=0;k<c;k++)
{b[j+1]=a[i];
i++;j++;}
}
i+=c;
}
s=len(b);
for(j=0;j<s;j++)
printf("%d",b[j]);
}
幫我喚畢看一下,哪裡錯了,謝謝

6. 如何用C語言實現數據壓縮

首先選擇一個壓縮演算法

然後按照演算法實現壓縮代碼,調用介面就可以
常見的 可以使用哈夫曼編碼壓縮,或者使用開源的壓縮代碼,比如lzo, gzip, lzma等等。

7. 如何用c語言實現壓縮圖片內存大小

是(row,col,value),這樣把所有不為零的值組成一個向量。這種存儲方式比二維數組節省了不少空間,當然還可以進一步節省,因為三元組裡面row或者col重復存儲了,一行或者一列存一次就行了,按這種思路走下去就是行壓縮存儲了。
那具體什麼是行壓縮存儲呢?行壓縮存儲的思想就是,把所有不為零的值按行訪問的順序組成一個向量,然後再把每一行值不為0的列的下標存下來,這個兩個向量的大小和稀疏矩陣中不為0的值得個數相同,當然要實現對行壓縮矩陣的訪問,還要把每一行的不為0的列的下標在第二個向量中開始的位置存下來,有人把這個叫做指針。有了這三個向量就可以實現對矩陣實現高效的按行訪問了。行壓縮存儲比三元組優秀的不僅是空間的壓縮,還有就是行訪問時的高效。三元組如果是有序的,可以二分查找來訪問一行,但是行壓縮存儲按行訪問時的時間復雜度是常數級的。 大家可以參考下面這個行壓縮矩陣示意圖:

8. C語言都有哪些經典的無損壓縮演算法

C語言經典的無損壓縮演算法有:哈夫曼演算法、LZ。

哈夫曼演算法:
哈夫曼編碼是David A. Huffman於1952年發明的一種滿足對編碼演算法要求的一種編碼演算法。
哈夫曼演算法是利用頻率信息構造一棵二叉樹,頻率高的離根節點近(編碼長度短),頻率低的離根節點遠(編碼長度長),手動構造方法是先將字母按照頻率從小到大排序,然後不斷選擇當前還沒有父節點的節點中權值最小的兩個,構造新的父節點,父節點的值為這兩個節點值的和,直到構造成一棵二叉樹。

LZ演算法:
LZ演算法及其衍生變形演算法是壓縮演算法的一個系列。LZ77和LZ78演算法分別在1977年和1978年被創造出來。雖然他們名字差不多,但是演算法方法完全不同。這一系列演算法主要適用於字母數量有限的信息,比如文字、源碼等。流行的GIF和PNG格式的圖像,使用顏色數量有限的顏色空間,其壓縮就採用了兩種演算法的靈活變形應用。

9. C語言求助:請編寫一個字元串壓縮程序,將字元串中連續出席的重復字母進行壓縮,並輸出壓縮後的字元串。

#include <stdio.h>

void stringZip(const char

*pInputStr, long lInputLen, char *pOutputStr)

{ int n=1;

char c,*p1=pInputStr,*p2=pOutputStr;

while(*p1)

{

c=*(p1++);

while(*p1==c){n++;p1++;}

if(n>1)

{

if(n>999){*(p2++)=48+n/1000; n/=10;}

if(n>99){*(p2++)=48+n/100; n/=10;}

if(n>9){*(p2++)=48+n/10; n/=10;}

*(p2++)=48+n;

}

*(p2++)=c;

n=1;

}

*p2='';

}

void main()

{ char s1[200],s2[200];

gets(s1);

stringZip(s1,strlen(s1),s2);

puts(s2);

}

熱點內容
超能編程 發布:2025-01-20 19:56:26 瀏覽:1000
安卓手機怎麼連藍牙汽車 發布:2025-01-20 19:39:05 瀏覽:253
保定軍工存儲廠家 發布:2025-01-20 19:38:53 瀏覽:795
雲伺服器ecs服務條款 發布:2025-01-20 19:19:36 瀏覽:47
安卓系統顯示屏怎麼設置屏保 發布:2025-01-20 19:18:53 瀏覽:896
有鎖機和配置鎖哪個好 發布:2025-01-20 19:18:05 瀏覽:767
安卓版軟體如何設置 發布:2025-01-20 18:58:53 瀏覽:58
java中級項目案例 發布:2025-01-20 18:58:52 瀏覽:913
sql日誌查看工具 發布:2025-01-20 18:57:12 瀏覽:243
資料庫刪除表格 發布:2025-01-20 18:51:22 瀏覽:440