【第8周实践项目4-字符串加密】

来源:互联网 发布:mac激活时间查询 编辑:程序博客网 时间:2024/06/09 15:33
/*       Copyright (c)2016,烟台大学计算机与控制工程学院       All rights reserved.       文件名称:xm4.cpp       作    者:隋溢凡      完成日期:2016年10月20日       版 本 号: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; 

--------------------------------------------------------------------------------

运行结果:

0 0
原创粉丝点击