C语言 | 将密码译回原文

2021年11月25日 阅读数:0
这篇文章主要向大家介绍C语言 | 将密码译回原文,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

“要成为绝世高手,并不是一朝一夕,除非是天生武学奇才,可是这种人…万中无一”
编程

——包租婆

这道理放在C语言学习上也一并受用。在编程方面有着天赋异禀的人毕竟是少数,咱们大多数人想要从C语言小白进阶到高手,须要经历的是日积月累的学习。
那么如何学习呢? 固然是天天都练习一道C语言题目!!


做者数组

闫小林微信

白天搬砖,晚上作梦。我有故事,你有酒么?app


例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个字母,所以从原文译为密码和从密码译为原文,都是同一个公式。 

源代码演示:


    
    
    
     
     
#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
}

编译运行结果以下:


    
    
    
     
     
输入密码:
C yuyan

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

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


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

C语言学习路线     C语言开发工具
C++学习路线     C#学习路线
长按关注

学习C/C++不迷路 


本文分享自微信公众号 - C语言入门到精通(c_printf)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。函数