我们给出一种最简单的加密方法,对给定的一个字符串,把其中从 a∼y, A∼Y 的字母用其后继字母替代,把 z 和 Z 用 a和 A 替代,其他非字母字符不变。请根据该加密规则将输入的密码进行解密。 c语言代码怎么写
时间: 2024-10-21 14:06:40 浏览: 38
这种简单的加密方法也被称为凯撒密码或替换式加密的一种形式。在C语言中,你可以编写如下的函数来实现这个解密过程:
```c
#include <stdio.h>
#include <ctype.h>
char decrypt(char input) {
if (isalpha(input)) {
if (islower(input)) { // 对小写字母处理
return input == 'z' ? 'a' : input + 1;
} else { // 对大写字母处理
return input == 'Z' ? 'A' : input - 1;
}
} else {
// 非字母字符保持不变
return input;
}
}
void decrypt_string(char* str) {
int i = 0;
while (str[i]) {
str[i] = decrypt(str[i]);
i++;
}
}
int main() {
char password[100]; // 假设输入的字符串长度不超过100
printf("请输入需要解密的密码:");
fgets(password, sizeof(password), stdin); // 读取用户输入
// 删除fgets最后的换行符
password[strlen(password) - 1] = '\0';
decrypt_string(password);
printf("解密后的密码是:%s\n", password);
return 0;
}
```
在这个程序中,`decrypt` 函数用于单个字符的解密,而 `decrypt_string` 则遍历整个输入字符串并应用相同的解密规则。
阅读全文