鱼C论坛

 找回密码
 立即注册
查看: 4016|回复: 2

[技术交流] 译密码!

[复制链接]
发表于 2013-3-25 18:02:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
将字母A变成字母E,a变成e,即变成其后的第4个 字母,W变成A,X变成B,Y变成C,Z变成D。

友情提示:应该有要求两个功能!

一,  输入原文译成密码;

二,输入密码译成原文!

根据小甲鱼的提示和参考大家的代码,写出了具有这样俩个功能的程序,请大家指教:
  1. #include <stdio.h>

  2. void main()
  3. {
  4.         int m;                                                                     //判断是要进行译文还是密文标志
  5.         char c;
  6. loop:        printf("请选择,输入1表示进行明文转密文,输入0表示进行密文转明文:\n");               //1表示明文转密文,0表示密文转明文
  7.        
  8.         scanf("%d",&m);
  9.        
  10.         if (m !=0 && m != 1)
  11.         {
  12.                 printf("Errer! Input again!");                                            //如果输入不是1或者0,则报错
  13.                 goto loop;
  14.         }                     
  15.        
  16.         printf("输入要进行转换的字符串并以回车结束:");                                                       //输入要转换的字符串
  17.        
  18.         while (m == 1)                                                                                                                                   //明文转密文
  19.         {
  20.                 while ((c=getchar()) != '\n')                                        //从输入获得字符,回车结束
  21.                 {
  22.                         if ((c >= 'A' && c <= 'Z')||(c >= 'a' && c <= 'z'))              //如果输入A到Z或者a到z,则加4
  23.                         {
  24.                                 c=c+4;
  25.                                 if ((c > 'Z' && c <= 'Z'+4) || (c > 'z'))                      //w,x,y,z特殊情况处理
  26.                                 {c=c-26;}
  27.                         }
  28.                         printf("%c",c);                                                    //输出,如果输入不是字母,直接原样输出
  29.                 }
  30.         }
  31.        
  32.         while(m == 0)                                                         // 密文转明文
  33.         {
  34.                 while((c=getchar()) != '\n')
  35.                 {
  36.                         if ((c >= 'E' && c <= 'Z')||(c >= 'e' && c <= 'z'))
  37.                         {
  38.                                 c=c-4;
  39.                         }
  40.                         else if ((c >= 'A' && c <= 'D')||(c >= 'a' && c <= 'd'))      //w,x,y,z特殊情况处理
  41.                         {c=c+22;}
  42.                         printf("%c",c);                                              //输出,如果输入不是字母,直接原样输出
  43.                         }
  44.         }
  45. }
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-25 18:03:13 | 显示全部楼层
发上来怎么看起来这么乱
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-25 18:04:06 | 显示全部楼层
  1. #include <stdio.h>

  2. void main()
  3. {
  4.         int m;   //判断是要进行译文还是密文标志
  5.         char c;
  6. loop:        printf("请选择,输入1表示进行明文转密文,输入0表示进行密文转明文:\n");   //1表示明文转密文,0表示密文转明文
  7.        
  8.         scanf("%d",&m);
  9.        
  10.         if (m !=0 && m != 1)
  11.         {
  12.                 printf("Errer! Input again!");   //如果输入不是1或者0,则报错
  13.                 goto loop;
  14.         }                     
  15.        
  16.         printf("输入要进行转换的字符串并以回车结束:");         //输入要转换的字符串
  17.        
  18.         while (m == 1)         //明文转密文
  19.         {
  20.                 while ((c=getchar()) != '\n')    //从输入获得字符,回车结束
  21.                 {
  22.                         if ((c >= 'A' && c <= 'Z')||(c >= 'a' && c <= 'z'))  //如果输入A到Z或者a到z,则加4
  23.                         {
  24.                                 c=c+4;
  25.                                 if ((c > 'Z' && c <= 'Z'+4) || (c > 'z'))   //w,x,y,z特殊情况处理
  26.                                 {c=c-26;}
  27.                         }
  28.                         printf("%c",c);   //输出,如果输入不是字母,直接原样输出
  29.                 }
  30.         }
  31.        
  32.         while(m == 0)  // 密文转明文
  33.         {
  34.                 while((c=getchar()) != '\n')
  35.                 {
  36.                         if ((c >= 'E' && c <= 'Z')||(c >= 'e' && c <= 'z'))
  37.                         {
  38.                                 c=c-4;
  39.                         }
  40.                         else if ((c >= 'A' && c <= 'D')||(c >= 'a' && c <= 'd'))   //w,x,y,z特殊情况处理
  41.                         {c=c+22;}
  42.                         printf("%c",c);    //输出,如果输入不是字母,直接原样输出
  43.                         }
  44.         }
  45. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-7 04:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表