c语言要求: 先把输入的电文变成密码,打印输出。然后,再把密码按题目中规则解密成原电文,并打印输出。
时间: 2024-09-25 22:19:28 浏览: 36
在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;
}
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;
}
return c;
}
int main() {
char input[100], encrypted[100], decrypted[100];
printf("Enter the message: ");
fgets(input, sizeof(input), stdin);
input[strcspn(input, "\n")] = '\0'; // 移除换行符
// 把输入的电文变成密码
for (size_t i = 0; input[i] != '\0'; i++) {
encrypted[i] = encrypt(input[i]);
}
encrypted[strlen(encrypted)] = '\0';
printf("Encrypted message: %s\n", encrypted);
// 解密密码
for (size_t i = 0; i < strlen(encrypted); i++) {
decrypted[i] = decrypt(encrypted[i]);
}
decrypted[strlen(decrypted)] = '\0';
printf("Decrypted message: %s\n", decrypted);
return 0;
}
```
当你运行这个程序时,它会提示你输入一段电文,然后将电文加密并打印出来。接着,它会根据相同的规则解密出原始的信息,并再次打印出来。
阅读全文