用c语言写实践任务6: 例6.10 译密码。 按一定规律将电文变成密码: 将字母A变为E、将字母a变为e,即变成其后的第四个字母,W将变成A。字母按上述规律转换,非字母字符不变。输入一行字符,输出相应密码。 要求:加上解密
时间: 2024-09-26 13:08:32 浏览: 81
例6.10 的密码加密解密程序可以用C语言编写,这里是一个简单的示例:
```c
#include <stdio.h>
#include <ctype.h>
// 加密函数
char encrypt(char c) {
if (isalpha(c)) { // 判断是否为字母
if ('A' <= c && c <= 'Z') { // 大写字母
return c + 4;
} else if ('a' <= c && c <= 'z') { // 小写字母
return c - 97 + 4; // 减去小写字母'a'的ASCII值再加4
}
}
return c; // 非字母字符保持原样
}
// 解密函数
char decrypt(char c) {
if (isalpha(c)) { // 判断是否为字母
if ('A' <= c && c <= 'Z') { // 大写字母
return c - 4;
} else if ('a' <= c && c <= 'z') { // 小写字母
return c + 97 - 4; // 加上小写字母'a'的ASCII值再减4
}
}
return c; // 非字母字符保持原样
}
int main() {
char input[100], output[100];
fgets(input, sizeof(input), stdin);
input[strcspn(input, "\n")] = '\0'; // 移除换行符
for (size_t i = 0; input[i] != '\0'; i++) {
output[i] = encrypt(input[i]);
}
output[strlen(output)] = '\0';
printf("Encrypted message: %s\n", output);
// 解密部分
for (size_t i = 0; i < strlen(output); i++) {
output[i] = decrypt(output[i]);
}
printf("Decrypted message: %s\n", output);
return 0;
}
```
在这个程序中,我们定义了`encrypt`和`decrypt`函数分别用于加密和解密字符。然后通过`fgets`获取用户输入,对每个字符进行相应的加密处理并输出结果,接着再次解密输出原始信息。
运行此程序时,输入一行字符即可看到加密和解密的结果。
阅读全文