前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言 | 将密码译回原文,并输出密码和原文

C语言 | 将密码译回原文,并输出密码和原文

原创
作者头像
小林C语言
修改2021-01-21 17:45:27
1.4K0
修改2021-01-21 17:45:27
举报

例66:有一行电文,已按下面规律译成密码:A->Z a->z;B->Y b->y;即第1个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求C语言编程将密码译回原文,并输出密码和原文。 

解析: 可以定义一个数组ch,在其中存放电文。如果字符ch[j]是大写字母,则它是26个字母中的第(ch[j]-64)个大写字母,由于此密码的规律是对称转换,即第1个字母转换为最后一个字母,最后一个转换为第1个字母,因此从原文译为密码和从密码译为原文,都是同一个公式。 

源代码演示:

代码语言:javascript
复制
#include<stdio.h>//头文件 
int main()//主函数 
{
  int j,n;//定义整型变量 
  char ch[80],tran[80];//定义字符数组 
  printf("输入密码:\n");//提示语句 
  gets(ch);//键盘输入 
  printf("\n密码是:\n%s",ch);//密码 
  j=0;//赋初值 
  while(ch[j]!='\0')//不是最后一个字符时 
  { 
    if((ch[j]>='A')&&(ch[j]<='Z'))//ASCII中A对应的值是65,a对应的值是97 
    {
      tran[j]=155-ch[j];
    }
    else if((ch[j]>='a')&&(ch[j]<='z'))//小写 
    {
      tran[j]=219-ch[j];
    }
    else
    {
      tran[j]=ch[j];
    }
    j++;
  }
  n=j;
  printf("\n输出原文:\n");//提示语句 
  for(j=0;j<n;j++)//遍历输出 
  { 
    putchar(tran[j]);
  } 
  printf("\n");//换行 
  return 0;//函数返回值为0 
}

编译运行结果如下:

代码语言:javascript
复制
输入密码:
C yuyan

密码是:
C yuyan
输出原文:
X bfbzm

--------------------------------
Process exited after 9.542 seconds with return value 0
请按任意键继续. . .

以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~

C语言 | 将密码译回原文,并输出密码和原文

更多案例可以go公众号:C语言入门到精通

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档