//檔案名:exp4-4.cpp
#include "sqstring.h" //包含順序串的基本運算演算法
SqString A,B; //全域串
SqString EnCrypt_lhl(SqString p)
{
int i = 0;
int j;
SqString q; // 回傳的加密字串
while(i < p.length)
{
for(j = 0; p.data[i] != A.data[j]; j++);
if(j >= p.length) // 在A串中未找到p.data[i]字母
q.data[i] = p.data[i];
else // 在A串中找到p.data[i]字母
q.data[i] = B.data[j];
i++;
}
q.length = p.length;
return q;
}
SqString UnEncrypt_lhl(SqString q)
{
int i = 0;
int j;
SqString p; // 回傳的原串
while(i < q.length)
{
for(j = 0; q.data[i] != B.data[j]; j++);
if(j >= q.length) // 在B串中未找到q.data[i]字母
p.data[i] = q.data[i];
else // 在B串中找到q.data[i]字母
p.data[i] = A.data[j];
i++;
}
p.length = q.length;
return p;
}
int main()
{
SqString p,q;
int ok=1;
StrAssign(A,"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"); //建立A串
StrAssign(B,"NgzQTCobmUHelkPdAWxfYIvrsJGnZqtcoBMuhELKpaDWXFyiVRjs"); //建立B串
char str[MaxSize];
printf("\n");
printf("輸入原文串:");
gets(str); //獲取用戶輸入的原文串
StrAssign(p,str); //建立p串
printf("加密解密如下:\n");
printf(" 原文串:");DispStr(p);
q=EnCrypt_lhl(p); //p串加密產生q串
printf(" 加密串:");DispStr(q);
p=UnEncrypt_lhl(q); //q串解密產生p串
printf(" 解密串:");DispStr(p);
printf("\n");
DestroyStr(p);
DestroyStr(q);
return 1;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/188292.html
標籤:C++ 語言
