用devc++编写凯撒密码程序
时间: 2023-08-29 17:04:35 浏览: 186
好的,以下是用devc++编写凯撒密码程序的示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
int main()
{
string plaintext, ciphertext;
int key;
cout << "请输入明文:";
getline(cin, plaintext);
cout << "请输入密钥(0-25之间的整数):";
cin >> key;
for (int i = 0; i < plaintext.size(); i++)
{
// 判断字符是否为大写字母
if (plaintext[i] >= 'A' && plaintext[i] <= 'Z')
{
ciphertext += 'A' + (plaintext[i] - 'A' + key) % 26;
}
// 判断字符是否为小写字母
else if (plaintext[i] >= 'a' && plaintext[i] <= 'z')
{
ciphertext += 'a' + (plaintext[i] - 'a' + key) % 26;
}
// 非字母字符不做处理
else
{
ciphertext += plaintext[i];
}
}
cout << "加密后的密文为:" << ciphertext << endl;
return 0;
}
```
解释一下上面的代码:
1. 首先定义了三个变量,分别用来存放明文、密文和密钥。其中,使用 `string` 类型来存放字符串,因为这样可以方便地处理字符串的输入、输出和拼接。
2. 用户输入明文和密钥,分别使用 `getline()` 和 `cin` 函数实现。
3. 接下来使用一个 `for` 循环来遍历明文中的每一个字符,根据字符的 ASCII 码值进行加密。
4. 如果字符是大写字母,则将它加上密钥,再对 26 取模,最后加上字母 A 的 ASCII 码值,得到加密后的字符。
5. 如果字符是小写字母,则操作与大写字母相同,只是加上的是字母 a 的 ASCII 码值。
6. 如果字符不是字母,则直接将它加入密文中。
7. 最后输出加密后的密文。
希望这个示例代码能对你有所帮助!
阅读全文