题目:
本题要求编写程序,将英文字母替换加密。为了防止信息被别人轻易窃取,需要把电码明文通过加密方式变换成为密文。变换规则是:将明文中的所有英文字母替换为字母表中的后一个字母,同时将小写字母转换为大写字母,大写字母转换为小写字母。例如,字母a->B、b->C、…、z->A、A->b、B->c、…、Z->a。输入一行字符,将其中的英文字母按照以上规则转换后输出,其他字符按原样输出。
输入格式:
输入一行字符,以回车符 '\n'作为 结束符。
输出格式:
将输入的一行字符中的所有英文字母替换为字母表中的后一个字母,同时将小写字母转换为大写字母,大写字母转换为小写字母后输出,其他字符按原样输出。
题解:
因为输入格式的原因,所以可以使用getchar()而不使用gets();
又因为题目要求是大小写转换且后移一位,而在ASCII中大小写间隔为32
#include <iostream>
using namespace std;
int main()
{
char ch;
ch = getchar();
while (ch != '\n')
{
if (ch >= 'A' && ch < 'Z')
ch = ch + 32 + 1;
else if (ch == 'Z')
ch = 'a';
else if (ch >= 'a' && ch < 'z')
ch = ch - 32 + 1;
else if (ch == 'z')
ch = 'A';
putchar(ch);
ch = getchar();
}
return 0;
}