如何用C语言完成ROT13加密
时间: 2024-10-04 09:04:45 浏览: 46
ROT13是一种简单的字母替换密码技术,它将英文文本中的每个字母按照字母表顺序后移13个位置。如果字母超过'z'或'a',就回到字母表的开头。以下是一个使用C语言实现的简单ROT13加密的示例:
```c
#include <stdio.h>
#include <ctype.h>
// 函数定义,用于ROT13加密
char rot13(char c) {
if (isalpha(c)) { // 判断字符是否为字母
c = toupper(c); // 转换为大写(方便处理大小写字母)
if (c >= 'A' && c <= 'Z') {
return c - 13; // 对大写字母进行替换
} else if (c >= 'a' && c <= 'z') {
return c + 13; // 对小写字母进行替换
}
}
return c; // 非字母字符保持不变
}
int main() {
char input[100], output[100];
printf("请输入要加密的文本: ");
fgets(input, sizeof(input), stdin);
// 去掉fgets获取的换行符
size_t len = strlen(input);
if (input[len - 1] == '\n') {
input[len - 1] = '\0';
}
for (size_t i = 0; i < len; i++) {
output[i] = rot13(input[i]);
}
output[len] = '\0'; // 添加结束符
printf("加密后的文本: %s\n", output);
return 0;
}
```
在这个程序中,`rot13`函数接收一个字符并根据其是否是字母执行相应的加密操作。`main`函数中读取用户的输入,然后逐个字符应用`rot13`函数,最后输出加密结果。
阅读全文