编写一个C++程序,数据加密程序,从键盘输入一个字符串(长度不大于20),输出其对应的密文。加密规则是:将字符串中每个字符的ASCII码值加100。再把加密的密文还原并输出来。使用#include <stdio.h>
时间: 2024-12-16 15:14:01 浏览: 12
编写一个简单的C++程序,用于加密和解密一个给定的字符串,可以按照您的需求完成。以下是一个示例:
```cpp
#include <iostream>
#include <string>
// 加密函数
std::string encrypt(const std::string &input) {
std::string encrypted;
for (char c : input) {
if (c >= 'a' && c <= 'z') // 对小写字母加密
encrypted += static_cast<char>(c + 100 - 'a' + 'A');
else if (c >= 'A' && c <= 'Z') // 对大写字母加密
encrypted += static_cast<char>(c + 100 - 'A' + 'A');
else
encrypted += c; // 其他非字母字符不变
}
return encrypted;
}
// 解密函数
std::string decrypt(const std::string &input) {
std::string decrypted = input;
for (size_t i = 0; i < decrypted.size(); ++i) {
if (decrypted[i] >= 'A' && decrypted[i] <= 'Z')
decrypted[i] = static_cast<char>((decrypted[i] - 'A' + 100) % 26 + 'a');
else if (decrypted[i] >= 'a' && decrypted[i] <= 'z')
decrypted[i] = static_cast<char>((decrypted[i] - 'a' + 100) % 26 + 'A');
}
return decrypted;
}
int main() {
std::string input;
std::cout << "请输入一个不超过20字符的字符串: ";
std::getline(std::cin, input);
if (input.length() > 20)
std::cerr << "警告: 输入的字符串长度超过20个字符!" << std::endl;
std::string encrypted = encrypt(input);
std::cout << "加密后的密文: " << encrypted << std::endl;
std::string decrypted = decrypt(encrypted);
std::cout << "解密后的原始字符串: " << decrypted << std::endl;
return 0;
}
```
在这个程序中,`encrypt` 函数负责加密,`decrypt` 函数负责解密。注意,这个加密方案仅适用于英文字符,并且为了保持可读性,我们只对大写字母和小写字母进行了加密,其他字符(如数字、标点等)不会改变。
阅读全文