2015年大二上-数据结构-串(4)- 字符串加密
2015-12-06 11:22
453 查看
一个文本串可用事先编制好的字符映射表进行加密。例如,设字符映射表为:
则字符串“lao he jiao shu ju jie gou”被加密为“enp bt umnp xby uy umt opy”。
设计一个程序,实现加密、解密算法,将输入的文本进行加密后输出,然后进行解密并输出。
运行结果:
1.abcdefghijklmnopqrstuvwxyz 2.ngzqtcobmuhelkpdawxfyivrsj
则字符串“lao he jiao shu ju jie gou”被加密为“enp bt umnp xby uy umt opy”。
设计一个程序,实现加密、解密算法,将输入的文本进行加密后输出,然后进行解密并输出。
/* *Copyright (c) 2014,烟台大学计算机学院 *All rights reserved. *文件名称:Annpion.cpp *作者:王耀鹏 *完成日期:2015年12月6日 *版本号:v1.0 * *问题描述:顺序串算法 *输入描述:输入原文串。 *输出描述:输出相应的加密串和解密串。 */ #include <stdio.h> #include "sqString.h" SqString A,B; //用于存储字符映射表 SqString EnCrypt(SqString p) { int i=0,j; SqString q; while(i<p.length) { for(j=0;p.data[i]!=A.data[j]&&j<A.length;++j); if(j>=A.length) q.data[i]=p.data[i]; else q.data[i]=B.data[j]; ++i; } q.length=p.length; return q; } SqString UnEncrypt(SqString p) { int i=0,j; SqString q; while(i<p.length) { for(j=0;p.data[i]!=B.data[j]&&j<B.length;++j); if(j>=A.length) q.data[i]=p.data[j]; else q.data[i]=A.data[j]; ++i; } q.length=p.length; return q; } int main() { SqString p,q; StrAssign(A,"abcdefghijklmnopqrstuvwxyz"); //建立A串 StrAssign(B,"ngzqtcobmuhelkpdawxfyivrsj"); //建立B串 char str[MaxSize]; 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; }
运行结果:
相关文章推荐
- 2015年大二上-数据结构-串(3)- 顺序串算法
- 数据结构绪论
- 链表反转
- 数据结构上机测试4.1:二叉树的遍历与应用1
- 数据结构实验之查找二:平衡二叉树
- 数据结构——各排序算法的比较
- 数据结构——二分查找【转】
- 【数据结构实验】哈夫曼编/译码
- Linux c 算法与数据结构--栈
- UI XML,JSON 数据结构解析
- 【第14周—查找项目1-3——验证二叉排序树相关算法】
- 数据结构实验二——单链表的基本实现
- nginx 源码学习笔记(六)——nginx基本数据结构
- 数据结构与算法(2)——各种方法实现杨辉三角
- 数据结构实验一(第3题)
- 数据结构实验一(第1题)
- 数据结构(实验一)第2题
- 数据结构与算法分析学习过程
- 数据结构--向量--选择排序
- 数据结构实验之查找五:平方之哈希表