加密程序:由键盘输入明文,通过加密程序转换成密文并输出到屏幕上。 算法:明文中的字母转换成其后的第4个字母,例如,A变成E(a变成e),Z变成D,非字母字符不变;同时将密文每两个字符之间插入一个空格。例如,China转换成密文为G l m r e。要求:在函数change中完成字母转换,在函数insert中完成增加空格,用指针传递参数。C++
时间: 2023-06-18 10:08:12 浏览: 573
下面是一个实现该加密程序的C++代码:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
void change(char* str) {
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (isalpha(str[i])) {
str[i] = (str[i] - 'A' + 4) % 26 + 'A';
}
}
}
void insert(char* str) {
int len = strlen(str);
for (int i = 1; i < len; i += 2) {
for (int j = len; j > i; j--) {
str[j] = str[j - 1];
}
str[i] = ' ';
len++;
}
}
int main() {
char str[100];
cout << "请输入明文:";
cin.getline(str, 100);
change(str);
insert(str);
cout << "密文为:" << str << endl;
return 0;
}
```
首先在函数`change`中遍历字符串,对于每个字母,将其转换为后面的第4个字母。使用`isalpha`函数判断是否为字母,使用ASCII码进行加减运算。
然后在函数`insert`中遍历字符串,每两个字符之间插入一个空格。为了避免覆盖原有字符,从后往前遍历并移动字符。
在`main`函数中,先读入明文,然后调用`change`和`insert`函数进行加密,最后输出密文。
阅读全文