凯撒密码用C++编写

这是一个使用C++编写的凯撒密码程序,能够进行加密和解密操作。用户可以输入自定义的密码表,对文本进行处理。程序提供了一个交互式的菜单供用户选择加密、解密或退出。示例中,输入文本'QWERTYUIOPASDFGHJKLZXCVBNM'经过加密后变为'Vtsegdt zg MMLN2009!'。
摘要由CSDN通过智能技术生成

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const int MAX_N=200;
int main(int argc, char *argv[])
{
int i,j,p;
char text[MAX_N];
char alphabet[30];
char op[10];

while(1)
{
printf(“1—输入密码表 2—退出\n”);
gets(op);

if(strcmp(op,“1”)==0)
{
printf(“密码表:”);
gets(alphabet);

while(1)
{
printf(“1—加密 2—解密 3—返回\n”);
gets(op);

if(strcmp(op,“1”)== 0 ||strcmp(op," 2 “)== 0 )
{
printf(“输入文本:”);
gets(text);
for(i=0;text[i]!=’\0’;i++)
{
if((text[i]>=‘a’&&text[i]<=‘z’) || (text[i]>=‘A’&&text[i]<=‘Z’) )
{
if(strcmp(op,“1”)=0)
{
p=text[i]>=‘a’? (text[i]-‘a’):(text[i]-‘A’);
text[i]

好的,以下是用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. 最后输出加密后的密文。 希望这个示例代码能对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值