当前位置:首页 » 编程语言 » c语言解码程序

c语言解码程序

发布时间: 2024-12-05 04:46:24

‘壹’ 用c语言实现算术编码和解码

Turbo c 2.0编译通过

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#defineLENGTH100 /*字符串(编码前或编码后)的最大长度*/

/*编码*/
voidencode(char*strsource);
/*解码*/
voiddecode(char*strcode);

voidmain()
{
charcode[LENGTH]="BILLGATES";
encode(code);
printf("\nencodedstringis:%s\n",code);
decode(code);
printf("\ndecodedstringis:%s\n",code);
getch();
}
voidencode(char*strsource){
char*p=strsource,tmp[LENGTH]={'\0'},buffer[3];
while(*p){
itoa(*p++,buffer,10);
strcat(tmp,"%");
strcat(tmp,buffer);
}
strcpy(strsource,tmp);
}

voiddecode(char*strcode){
inti=0;
char*p,*s=strcode,tmp[LENGTH]={'\0'};
char*cSplit="%";
p=strtok(s,cSplit);
while(p)
{
tmp[i++]=atoi(p);
p=strtok(NULL,cSplit);
}
strcpy(strcode,tmp);
}

‘贰’ C语言或C++编写二维码的解码部分详细的源代码及说明

1、二维码有很多种标准,可谨轮以控制存储数据的信息量,也可以控制容错的数据量[使得部分污损的二维码可以被正常读取。通常的做法是调用二维码设计方提供的组件,如果是自己生成二维码,应该可以生成可以看起来很像的东西。

2、例程:

<pre name="code" class="cpp">int Fb_QrDisp(int iPenX,int iPenY,QRcode*pQRcode)

{

T_PixelDatasg_tOriginPixelDatas;

T_PixelDatasg_tZoomPixelDatas;

//intiZoom;

inti;

g_tOriginPixelDatas.iWidth= pQRcode->width;

g_tOriginPixelDatas.iHeight=pQRcode->width;

g_tOriginPixelDatas.iLineBytes=g_tOriginPixelDatas.iWidth;

g_tOriginPixelDatas.aucPixelDatas= pQRcode->data;

/*

if(pQRcode->version< = 1)

{

iZoom= 2;

}

else

{

iZoom= 2;

}

g_tZoomPixelDatas.iWidth = pQRcode->width*iZoom;

g_tZoomPixelDatas.iHeight=pQRcode->width*iZoom;

g_tZoomPixelDatas.iLineBytes=g_tZoomPixelDatas.iWidth;

g_tZoomPixelDatas.aucPixelDatas= malloc(g_tZoomPixelDatas.iWidth* g_tZoomPixelDatas.iHeight);

if(g_tZoomPixelDatas.aucPixelDatas== NULL)

{

printf("g_tZoomPixelDatas->aucPixelDatasmalloc failed "神哗);

return-1;

}

PicZoom(&g_tOriginPixelDatas,&g_tZoomPixelDatas);

#if 0

printf("g_tZoomPixelDatas.iWidth=%d,g_tZoomPixelDatas.iHeight=%d ", g_tZoomPixelDatas.iWidth,g_tZoomPixelDatas.iHeight);

for(i=0;i<(g_tZoomPixelDatas.iWidth*g_tZoomPixelDatas.iHeight);i++)

{

printf("0x%x,",g_tZoomPixelDatas.aucPixelDatas[i]);

}

printf(" ");

#endif

*/

Disp_FixelPic(iPenX,iPenY,&g_tZoomPixelDatas);

return 0;

}

因为stmf429运行起来后内存祥瞎信不够,这里不用申请内存再扩充放大二维码数据的方法,而是直接描点。所以这里注释掉了放大部分。

‘叁’ C语言对文件字符串进行解码

#include<stdio.h>
main(){
FILE*fp1,*fp2;
chara[100];
charsecret[]="Kirschsaft!";
inti,j;
fp1=fopen("source.txt","r");
fp2=fopen("result.txt","w");
if(fp1==NULL||fp2==NULL)
return;
while(fgets(a,100,fp1)!=NULL){
for(i=0,j=0;a[i]!=' ';i++,j++){
if(j==11)
j=0;
if((int)a[i]>=32){
a[i]=a[i]^secret[j];
if((int)a[i]<32){
a[i]=a[i]+32;
}
}
}
for(;j>0&&j<11;j++,i++){
a[i]=secret[j];
}
a[i++]=' ';
a[i]='';
fprintf(fp2,"%s",a);
}
}

应该是限制高3位,使得每个字符的ASCII码大于0010 0000,即32。

我的策略是如果做完异或之后的ASCII码小于32就给他加32.

热点内容
我的世界服务器的反外挂系统 发布:2025-01-06 15:06:15 浏览:414
通达信编译 发布:2025-01-06 14:52:26 浏览:777
nltk中文python 发布:2025-01-06 14:25:27 浏览:974
安卓如何格机删掉系统应用 发布:2025-01-06 14:16:29 浏览:530
android异常退出 发布:2025-01-06 14:12:22 浏览:521
vbsql数据库查询 发布:2025-01-06 14:02:59 浏览:329
手机存储空间小会影响数据网络吗 发布:2025-01-06 14:02:52 浏览:313
安卓手机如何把手游变成端游 发布:2025-01-06 14:02:50 浏览:23
星球基地源码 发布:2025-01-06 13:57:58 浏览:190
手机淘宝前面的密码是什么 发布:2025-01-06 13:44:02 浏览:141