【第八周项目4】字符串加密

来源:互联网 发布:最好的数据恢复 编辑:程序博客网 时间:2024/06/06 02:18
    /*            Copyright (c)2017,烟台大学计算机与控制工程学院            文件名称:27.cpp            作    者:滕健            完成日期:2017年10月23日            版 本 号:v1.0                        问题描述:一个文本串可用事先编制好的字符映射表进行加密。例如,设字符映射表为:                abcdefghijklmnopqrstuvwxyz                ngzqtcobmuhelkpdawxfyivrsj      输入描述:串的输入。      程序输出:加密后的输出。      */          顺序串算法库            函数的实现:            SqString EnCrypt(SqString p)        {            int i=0,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(SqString q)        {            int i=0,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;        }              main函数:            #include <stdio.h>        #include "sqString.h"        int main()        {            SqString p,q;            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);                               //p串加密产生q串            printf("  加密串:");            DispStr(q);            p=UnEncrypt(q);                         //q串解密产生p串            printf("  解密串:");            DispStr(p);            printf("\n");            return 0;        }    


运行结果: