#6
抱歉,因為國慶休息沒有上網,謝謝各位的參與!現在問題已經解決!
To:hjhwfw(wfw)bcb中如此寫(我也是照抄)
String __fastcall TForm1::JiaMie(String s)//加密
{
String j="";
for (int i=1;i<=s.Length();i++)
{
char c=s[i];
int h=(c>>4)&0xf;
int l=c&0xf;
j=j+(char)('a'+h)+(char)('a'+l);
}
return(j);
}
String __fastcall TForm1::JieMie(String s)//解密
{
String j="";
for (int i=1;i<=s.Length();i=i+2)
{
int h=(s[i]-'a');
int l=(s[i+1]-'a');
char c=(h<<4)+(l&0xf);
j=j+c;
}
return(j);
}
主要原因是1:結尾未加'\0'
2:一個字符分解為2個后,應該每個后面加上一個常量,以避免出現字符為0的情況
Encrypt(char* cSrc,char* cDest)
{
char c;
int i,h,l,j=0;
for (i=0;i
{
c=cSrc[i];
h=(c>>4)&0xf;
l=c&0xf;
cDest[j]=h+'x';
cDest[j+1]=l+'z';
j+=2;
}
cDest[j]='\0';
return 0;
}
Decrypt(char* cSrc,char* cDest)
{
int i,h,l,m,n,j=0;
for (i=0;i
{
h=(cSrc[i]-'x');
l=(cSrc[i+1]-'z');
m=(h<<4);
n=(l&0xf);
cDest[j]=m + n;
j++;
}
cDest[j]='\0';
return 0;
}