📄 doublejm.cpp
字号:
// DOUBLE.cpp: implementation of the DOUBLE class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "DOUBLEJM.h"
#include<string.h>
#include<stdio.h>
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
DOUBLEJM::DOUBLEJM()
{
}
DOUBLEJM::~DOUBLEJM()
{
}
char *DOUBLEJM::encode()
{
char a[255]={'\0'},b[255]={'\0'},c[255]={'\0'},d[255]={'\0'};
int i,n,m,k,h,p=65,q=97,u[52],v[52],r,e[255]={0};
f[0]='\0';
for(i=0;i<52;i++)
{
if(p>90) p=65;
u[i]=p++;
}
printf("\n");
for(i=0;i<52;i++)
{
if(q>122) q=97;
v[i]=q++;
}
n=strlen(B);
m=strlen(A);
for(i=0;i<=m;i++)
a[i]=A[i];
for(i=0;i<=n;i++)
b[i]=B[i];
k=m%n;
h=m/n;
for(i=0;i<h;i++)
{
strcat(c,b);
}
strncpy(d,b,k);
strcat(c,d);
for(i=0;i<m;i++)
{
for(r=0;r<=25;r++)
{
if(u[r]==(int)c[i])
e[i]=r;
else if(v[r]==(int)c[i])
e[i]=r;
}
}
for(i=0;i<m;i++)
{
if((int)a[i]<97)
{
for(r=0;r<=25;r++)
{
if(u[r]==(int)a[i])
{
f[i]=(char)u[r+e[i]];
f[i+1]='\0';
}
if(u[r]==(int)a[i])
break;
}
}
else
{
for(r=0;r<=25;r++)
{
if(v[r]==(int)a[i])
{
f[i]=(char)v[r+e[i]];
f[i+1]='\0';
}
if(v[r]==(int)a[i])
break;
}
}
}
for(i=0;i<=(int)strlen(f);i++)
M[i]=f[i];
return f;
}
char *DOUBLEJM::decode()
{const int N=255;
char a[N]={'\0'},b[N]={'\0'},c[N]={'\0'},d[N]={'\0'};
int i,n,m,k,h,p=65,q=97,u[52],v[52],r,e[N]={0};
f[0]='\0';
for(i=0;i<52;i++)
{
if(p>90) p=65;
u[i]=p++;
}
for(i=0;i<52;i++)
{
if(q>122) q=97;
v[i]=q++;
}
n=strlen(B);
m=strlen(M);
for(i=0;i<=m;i++)
a[i]=M[i];
for(i=0;i<=n;i++)
b[i]=B[i];
k=m%n;
h=m/n;
for(i=0;i<h;i++)
{
strcat(c,b);
}
strncpy(d,b,k);
strcat(c,d);
for(i=0;i<m;i++)
{
for(r=0;r<=25;r++)
{
if(u[r]==(int)c[i])
e[i]=r;
else if(v[r]==(int)c[i])
e[i]=r;
}
}
for(i=0;i<m;i++)
{
if((int)a[i]<97)
{
for(r=25;r<=51;r++)
{
if(u[r]==(int)a[i])
{
f[i]=(char)u[r-e[i]];
f[i+1]='\0';
}
if(u[r]==(int)a[i])
break;
}
}
else
{
for(r=25;r<=51;r++)
{
if(v[r]==(int)a[i])
{
f[i]=(char)v[r-e[i]];
f[i+1]='\0';
}
if(v[r]==(int)a[i])
break;
}
}
}
return f;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -