题目内容:
凯撒密码的加密方法是:给定一串字符,把其中每个大写字母变换成按顺序向后移N位的字母,遇到26个字母结束要环回到字母A计算顺序,其他字符不变。编程实现凯撒加密,输出密文。
输入格式:
首先输入N的值。
然后输入一串包含一些大写字母的字符串,不包含空格,串长小于20个字符。
输出格式:
输出加密后的密文字符串。
输入样例:
3
ABC123&*XYZ
输出样例:
DEF123&*ABC
#include<iostream>
using namespace std;
int main()
{
const int N = 40;
int X;
cin >> X; cin.ignore();
int k = 0;
char buffer[N] = { '\n' };
cin.getline(buffer, N, '\n');
for (int i = 0; i < 20; i++)
{
if ((int)buffer[i] >=65 &&(int)buffer[i]<=90)
{
if ((int)buffer[i] + X <= 90)buffer[i] = (char)((int)buffer[i] + X);
if ((int)buffer[i] + X > 90)buffer[i] = (char)((int)buffer[i] - 26 + X);
}
}
for (int i = 0; i < 20; i++)
cout << buffer[i];
}