蓝桥杯:算法提高 9-2 文本加密

时间限制:1.0s   内存限制:256.0MB

 

问题描述
  先编写函数EncryptChar,按照下述规则将给定的字符c转化(加密)为新的字符:"A"转化"B","B"转化为"C",... ..."Z"转化为"a","a"转化为"b",... ..., "z"转化为"A",其它字符不加密。编写程序,加密给定字符串。
样例输出
与上面的样例输入对应的输出。
例:
数据规模和约定
  输入数据中每一个数的范围。
  例:50个字符以内无空格字符串。
 
程序:
#include<stdio.h>  
#include <string.h>  
#define N 55  
  
int main()  
{  
    char input[N];  
    int i=0;  
    scanf("%s",input);  
    for(i=0;i<strlen(input);i++)  
     {  
         if(input[i]>=65&&input[i]<=89)  
          input[i]+='\1';  
      else if((input[i]>=97&&input[i]<=121))  
         input[i]+='\1';  
    else if(input[i]==90)//ok   
          input[i]+='\7';  
     else if(input[i]==122)//ok   
          input[i]-='\71';  
     }  
printf("%s\n",input);  
    return 0;  
}  

  

虽然这道题做出来了,但是我还有一个疑问,就是下面这块代码中,为什么要减71,我觉得应该减57.但如果减57的话,小写z就会转为大写K。如果大家知道的话还请在评论区留言。

else if(input[i]==122)//ok   
          input[i]-='\71';  

  

posted @ 2017-03-15 18:06  王亨  阅读(619)  评论(0编辑  收藏  举报