/*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