给定一个字符串(以字符‘#’作为输入结束),对字符串中的每一个字符进行加密,生成密文。加密规则如下:若字符为字母,则用该字母之后的第2个字母进行替换,如:字母‘A’由字母‘C’替换(注意:字母‘Z’的下一个字母为字母‘A’);小写字母与大写字母的替换规则一样;若字符为数字,则用该数字之后的第3个数字进行替换,如:数字‘0’由数字‘3’替换(注意:数字‘9’的下一个数字为数字‘0’);其他字符不进行替换。最后输出加密后的字符串。
例如:输入:Hello3?+@Xyz89# 输出:Jgnnq6?+@Zab12
#include <iostream>
using namespace std;
int main()
{
char zifu,jiamizifu=0;
cout << "输入字符串:";
cin >> zifu;
while (zifu!='#')
{
if (zifu >= 'A' && zifu <= 'X')
{
jiamizifu = zifu + 2;
}
else if (zifu == 'Y')
{
jiamizifu = 'A';
}
else if (zifu == 'Z')
{
jiamizifu = 'B';
}
else if (zifu >= 'a' && zifu <= 'y')
{
jiamizifu = zifu + 2;
}
else if (zifu == 'y')
{
jiamizifu = 'a';
}
else if (zifu == 'z')
{
jiamizifu = 'b';
}
else if (zifu>='1'&&zifu<='7')
{
jiamizifu = zifu + 2;
}
else if (zifu == '8')
{
jiamizifu = 1;
}
else if (zifu == '9')
{
jiamizifu = 2;
}
else
{
jiamizifu = zifu;
}
cout << jiamizifu;
cin >> zifu;
}
return 0;
}
非常繁杂的但简单的问题。要点有两个:
1、x和y,8和9都要单独写
2、通过cin不断输入zifu给for循环