要求在题干所给代码框架的基础上,完成恺撒加密的第三个步骤,通过编写函数caesarEncrypt,实现按照加密规则完成加密。 例如:明文是"ATTACK IN THE MORNING",密钥k为3,加密后密文为"DWWDFN LQ WKH PRUQLQJ"。 注意:字符串中可以包含空格。#include <iostream> using namespace std; #define STR_LEN 80 //③按密钥进行恺撒加密 void caesarEncrypt(char plainText[], char cipherText[], int key) { /********* Begin *********/ /********* End *********/ } int main() { char plainText[STR_LEN]; //存储明文 char cipherText[STR_LEN]; //存储密文 int key; //存储密钥 //①输入明文 cin.getline(plainText, STR_LEN); //②输入密钥 cin >> key; //③按密钥进行恺撒加密 caesarEncrypt(plainText, cipherText, key); //④输出密文 cout << cipherText << endl; return 0; }
时间: 2023-07-06 17:37:50 浏览: 109
根据您的要求,我可以在题干所给的代码框架中,完成凯撒加密的第三个步骤,即按照加密规则完成加密,代码如下:
```
//③按密钥进行恺撒加密
void caesarEncrypt(char plainText[], char cipherText[], int key) {
int i = 0;
while (plainText[i] != '\0') {
if (plainText[i] >= 'A' && plainText[i] <= 'Z') {
cipherText[i] = (plainText[i] - 'A' + key) % 26 + 'A';
} else if (plainText[i] >= 'a' && plainText[i] <= 'z') {
cipherText[i] = (plainText[i] - 'a' + key) % 26 + 'a';
} else {
cipherText[i] = plainText[i];
}
i++;
}
cipherText[i] = '\0';
}
```
在这个函数中,我们首先遍历明文中的每个字符。如果该字符是大写字母,则按照加密规则将其转换为对应的密文字符。如果该字符是小写字母,则也按照加密规则将其转换为对应的密文字符。如果该字符不是字母,则直接将其添加到结果字符串中。最后,将结果字符串的末尾添加一个空字符,以表示字符串的结束。
您可以将这个函数添加到您的代码中,替换掉题干中给出的函数框架中的相应部分,即可完成凯撒加密的第三个步骤。
阅读全文