译密码按标准

把一串密码译成正文,密码以字符@结束,译码规则如下

①如果是字母,则转换成下一个字母

②如果是字母Z译成A

③无论大小写字母都译成小写字母

④其他字符一律按原样译出

 1 //第一种if写法
 2 #include<stdio.h>
 3 int main()
 4 {
 5     char ch;
 6     while ((ch=getchar())!='@')        //一直循环到@
 7     {
 8         if (ch >= 'A'&&ch <= 'Z' || ch >= 'a'&&ch <= 'z') //判断是否在大小写字母表里
 9         {
10             if (ch >= 'A'&&ch <= 'Z')    //在大写字母表
11             {
12                 if (ch == 'Z')        //如果是Z就直接赋值
13                     ch = 'a';
14                 else
15                     ch = ch - 'A' + 'a' + 1;
16             }
17             else                             //在小写字母表里
18             {
19                 if (ch == 'z')       //如果是z就直接赋值
20                     ch = 'a';
21                 else
22                 ch = ch + 1;
23             }
24         }
25         printf("%c", ch);
26     }
27 
28 
29     return 0;
30 }
 1 //第二种写法
 2 #include<stdio.h>
 3 int main()
 4 {
 5     char ch;
 6     while ((ch=getchar())!='@')        //一直循环到@
 7     {
 8         if (ch >= 'A'&&ch <= 'Z' || ch >= 'a'&&ch <= 'z') //判断是否在大小写字母表里
 9         {
10             if (ch >= 'A'&&ch <= 'Z')    //在大写字母表
11             {
12                 ch = (ch - 'A' + 1) % 26 + 'a';        //利用减去字母表的数对26取模若是字母Z则为0
13             }
14             else                             //在小写字母表里
15             {
16                 ch = (ch - 'a' + 1) % 26 + 'a';        //利用减去字母表的数对26取模若是字母z则为0
17             }
18         }
19         printf("%c", ch);
20     }
21 
22 
23     return 0;
24 }

猜你喜欢

转载自www.cnblogs.com/old-horse/p/12513531.html