c++解决有一行电文,请将电文中大写字母按A→Z,B→Y,C→X, D→W,……,X→C,Y→B,Z→A,的规律译成密文,其他字符保持不变。
时间: 2024-12-23 13:25:09 浏览: 5
在C++中,你可以通过遍历字符串并基于给定的字母替换规则来解决这个问题。这里是一个简单的解决方案:
```cpp
#include <iostream>
#include <string>
std::string encrypt(const std::string& plaintext) {
std::string ciphertext = plaintext;
for (size_t i = 0; i < ciphertext.size(); ++i) {
if (ciphertext[i] >= 'A' && ciphertext[i] <= 'Z') { // 判断是否为大写字母
char new_char = static_cast<char>((ciphertext[i] - 'A' + 5) % 26 + 'A'); // 遵循指定的替换规则
ciphertext[i] = new_char;
}
}
return ciphertext;
}
int main() {
std::string input;
std::cout << "请输入一行电文:";
getline(std::cin, input);
std::string encrypted = encrypt(input);
std::cout << "加密后的密文是:" << encrypted << std::endl;
阅读全文