注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

倚楼听风雨

没有理想的人,永远也不能翱翔与蓝天白云之上~

 
 
 

日志

 
 

一个字符串加密算法  

2007-11-22 00:52:01|  分类: 算法 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

来自李春葆老师编写的数据结构教程与上机实验指导,这本书不错!

#include <stdio.h>
#include <string.h>
#define MaxSize 100
typedef struct
{ char ch[MaxSize];
 int len;   /*串长*/
} SqString;
extern void StrAssign(SqString &,char []); /*在algo4-1.cpp文件中*/
extern void DispStr(SqString);
SqString A,B;   /*全局串*/
void StrAssign(SqString &str,char cstr[]) /*str为引用型参数*/
{
    int i;
    for (i=0;cstr[i]!='\0';i++)
         str.ch[i]=cstr[i];
    str.len=i;
}
void DispStr(SqString str)
{
    int i;
    if (str.len>0)
 {
        for (i=0;i<str.len;i++)
            printf("%c",str.ch[i]);
  printf("\n");
    }
}

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     /*在A串中找到p.ch[i]字母*/
   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);        /*p串加密产生q串*/
 printf("  加密串:");DispStr(q);
     p=UnEncrypt(q);       /*q串解密产生p串*/
 printf("  解密串:");DispStr(p);
 printf("\n");
}

  评论这张
 
阅读(924)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017