为了防止信息被别人轻易窃取,需要把电码明文通过加密方式变换成为密文。输入一个以回车符为结束标志的字符串(少于80个字符),再输入一个整数offset,用凯撒密码将其加密后输出。恺撒密码是一种简单的替换加密技术,将明文中的所有字母都在字母表上偏移offset位后被替换成密文,当offset大于零时,表示向后偏移;当offset小于零时,表示向前偏移。用C++代码解答
时间: 2024-03-07 07:48:57 浏览: 46
以下是C++代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
string caesarCipher(string message, int offset) {
string result = "";
for (int i = 0; i < message.length(); i++) {
char c = message[i];
if (isalpha(c)) {
c = toupper(c);
c = (((c - 65) + offset) % 26) + 65;
}
result += c;
}
return result;
}
int main() {
string message;
int offset;
cout << "请输入需要加密的字符串:" << endl;
getline(cin, message);
cout << "请输入偏移量:" << endl;
cin >> offset;
string encryptedMessage = caesarCipher(message, offset);
cout << "加密后的字符串为:" << encryptedMessage << endl;
return 0;
}
```
代码思路:
1. 定义一个 `caesarCipher` 函数,用于实现恺撒密码加密。该函数传入两个参数:需要加密的字符串和偏移量。
2. 在函数中,遍历输入的字符串,如果遍历到的字符是字母,则将其转换为大写字母,并进行偏移加密。
3. 最后将加密后的字符依次加入到结果字符串 `result` 中,并返回 `result`。
4. 在 `main` 函数中,先输入需要加密的字符串和偏移量,然后调用 `caesarCipher` 函数进行加密,最后输出加密后的字符串。
阅读全文