|
以下是一个简单的字符串加密算法示例,使用凯撒密码(每个字母向后移动3位)来实现加密。代码用C语言编写,适合初学者理解。
- #include <stdio.h>
- #include <string.h>
- int main() {
- char str[21]; // 定义字符数组,最多存储20个字符 + 结束符'\0'
- int i;
- printf("请输入一个字符串(不超过20个字符): ");
- fgets(str, sizeof(str), stdin); // 安全地输入字符串
- // 加密过程:遍历每个字符
- for (i = 0; str[i] != '\0'; i++) {
- // 如果是大写字母,移动3位(例如A->D)
- if (str[i] >= 'A' && str[i] <= 'Z') {
- str[i] = (str[i] - 'A' + 3) % 26 + 'A';
- }
- // 如果是小写字母,移动3位(例如a->d)
- else if (str[i] >= 'a' && str[i] <= 'z') {
- str[i] = (str[i] - 'a' + 3) % 26 + 'a';
- }
- // 其他字符(如数字、空格)保持不变
- }
- printf("加密后的密文: %s", str);
- return 0;
- }
复制代码
代码说明:
- 使用 fgets 输入字符串,避免缓冲区溢出。
- 加密时,只处理字母字符(A-Z和a-z),通过模运算确保移动后仍在字母范围内。
- 非字母字符(如数字或标点)不加密,直接保留。
运行示例:
- 输入 "Hello" 会加密为 "Khoor"。
- 输入 "abc123" 会加密为 "def123"。
这个算法简单易懂,适合C语言初学者练习。如果有问题,欢迎继续提问!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|