本题要求编写程序,将英文字母替换加密。为了防止信息被别人轻易窃取,需要把电码明文通过加密方式变换成为密文。变换规则是:将明文中的所有英文字母替换为字母表中的后一个字母,同时将小写字母转换为大写字母,大写字母转换为小写字母。例如,字母a->B、b->C、…、z->A、A->b、B->c、…、Z->a。输入一行字符,将其中的英文字母按照以上规则转换后输出,其他字符按原样输出。
输入格式:
输入一行字符,以回车符 '\n'作为 结束符。
输出格式:
将输入的一行字符中的所有英文字母替换为字母表中的后一个字母,同时将小写字母转换为大写字母,大写字母转换为小写字母后输出,其他字符按原样输出。
输入样例:
在这里给出一组输入。例如:
Reold Z123?
输出样例:
在这里给出相应的输出。例如:
sFPME a123?
结尾无空行
题目要求:大致就是让我们把一串字符中的英文字母大小写转换+后移1位
编程思路:找到英文字母,然后大小写转换并且后移1位
在ASCII(标准美国信息交换标准代码)中,A-Z在十进制码值为65~90,a~z为97~122
所以,例如:大写变小写B(66)->b(98),则B-65+97=b,即B+32=b
小写变大写b(98)->B(67),则b-97+65=B,即b-32=B
但是,对于最后的Z或者来讲,就需要单独处理了。
#include<stdio.h>int main(){char ch;ch = getchar();//getchar的功能是输入单个字符while(ch!='\n'){if(ch>='A'&&ch<'Z')//判断大写字母{ch = ch+32+1; //转换并且后移一位}else if(ch=='Z') //大写'Z'单独处理{ch = 'a';}else if(ch>='a'&&ch<'z') //判断小写字母{ch = ch-32+1;}else if(ch=='z')//小写'z'单独处理{ch = 'A';}putchar(ch);//putchar的功能是输出单个字符ch = getchar(); //用while循环输入剩余字符}return 0;}