当前位置:首页 » 编程语言 » 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.

热点内容
三星note4合并sd卡存储 发布:2024-12-05 10:55:11 浏览:62
服务器如何把物品下面的英文去掉 发布:2024-12-05 10:54:26 浏览:269
布拖县社保卡初始密码是多少 发布:2024-12-05 10:41:31 浏览:793
nvl数据库 发布:2024-12-05 10:39:53 浏览:317
ev编译教程 发布:2024-12-05 10:39:11 浏览:892
金本位算法 发布:2024-12-05 10:33:31 浏览:98
二元次解压 发布:2024-12-05 10:28:38 浏览:517
云流量服务器搭建 发布:2024-12-05 10:18:48 浏览:179
熟练空3加密 发布:2024-12-05 10:06:18 浏览:724
sony游戏机格式化密码是什么 发布:2024-12-05 10:05:34 浏览:757