用C语言编写下面程序 输入说明:输入数据只有一行,包含待加密的字符串,长度不超过60个字符。 输出说明:输出加密后的字符串。
时间: 2024-10-04 15:04:54 浏览: 36
c语言将字符串中的小写字母转换成大写字母
5星 · 资源好评率100%
这是一个简单的凯撒密码(Caesar Cipher)加密程序,凯撒密码是一种替换加密技术,其中每个字母按照字母表中的固定位移进行替换。我们可以使用C语言来实现这个功能。下面是一个基本的示例,位移量设为3:
```c
#include <stdio.h>
#include <string.h>
// 函数定义,用于加密给定字符串
char encrypt_char(char c, int shift) {
if (c >= 'a' && c <= 'z') { // 对小写字母进行处理
return ((c - 'a' + shift) % 26) + 'a';
} else if (c >= 'A' && c <= 'Z') { // 对大写字母进行处理
return ((c - 'A' + shift) % 26) + 'A';
} else {
return c; // 非字母字符保持不变
}
}
// 加密整个字符串
void caesar_encrypt(char *str, int shift) {
for (int i = 0; str[i]; i++) {
str[i] = encrypt_char(str[i], shift);
}
}
int main() {
char input[61];
printf("请输入待加密的字符串(不超过60个字符):\n");
fgets(input, sizeof(input), stdin); // 注意fgets处理换行符
input[strcspn(input, "\n")] = '\0'; // 去除末尾可能存在的换行符
int shift = 3;
caesar_encrypt(input, shift);
printf("加密后的字符串:\n%s\n", input);
return 0;
}
```
在这个程序中,`encrypt_char` 函数负责单个字符的加密,`caesar_encrypt` 函数遍历整个输入字符串并调用 `encrypt_char` 进行加密。用户需要在命令行输入待加密的字符串。
阅读全文