文本串加密和解密程序

/*exp4-4.cpp*/ #include<stdio.h> #include<string.h> #define MaxSize 100 typedef struct {  char ch[MaxSize];  int len;/*串长*/ }SqString; extern void StrAssign(SqString &str,char cstr[]); extern void DispStr(SqString s); SqString A,B;/*全局串*/ SqString EnCrypt(SqString p)/*加密过程*/ {  int i=0,j;  SqString q;  while(i<p.len)  {   for(j=0;p.ch[i]!=A.ch[j];j++)    if(j>=p.len)/*在A串中未找到p.ch[i]字母*/     q.ch[i]=p.ch[i];    else     q.ch[i]=B.ch[j];    i++;  }  q.len=p.len;  return q; } SqString UnEncrypt(SqString q)/*解密过程*/ {  int i=0,j;  SqString p;  while(i<q.len)  {   for(j=0;q.ch[i]!=B.ch[j];j++)    if(j>=q.len)/*在B串中未找到q.ch[i]字母*/     p.ch[i]=q.ch[i];    else/*在B串中找到q.ch[i]字母*/     p.ch[i]=A.ch[j];    i++;  }  p.len=q.len;  return p; } void main() {  SqString p,q;  int ok=1;  StrAssign(A,"abcdefghijklmnopqrstuvwxyz");/*建立A串*/  StrAssign(B,"ngzqtcobmuhelkpdawxfyivrsj");/*建立B串*/  char str[MaxSize];  printf("\n");  printf("输入原文串:");  gets(str);/*获取用户输入的原文串*/  StrAssign(p,str)/*建立p串*/;  printf("加密解密如下:\n");  printf("原文串:");DispStr(p);  q=EnCrypt(p);  printf("加密串:");DispStr(q);  p=UnEncrypt(q);  printf("解密串:");DispStr(p);  printf("\n"); }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7d27445c774955f727e3d16790253aff.html