用C语言再不用函数的前提下编写程序,实现凯撒密码的加密
时间: 2024-11-27 15:24:38 浏览: 9
在C语言中,你可以通过循环结构和位操作来实现凯撒密码的加密,无需直接使用函数。凯撒密码是一种简单的替换加密技术,将每个字母按照固定的偏移量向后移动。以下是一个基本的示例,假设偏移量为3:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char plaintext[100], ciphertext[100];
int key = 3; // 预设的偏移量
int i;
printf("请输入明文: ");
fgets(plaintext, sizeof(plaintext), stdin);
plaintext[strlen(plaintext) - 1] = '\0'; // 去除fgets留下的换行符
for (i = 0; plaintext[i]; i++) {
if (isalpha(plaintext[i])) { // 检查是否为字母
// 对大写字母和小写字母分别处理
if (isupper(plaintext[i])) {
ciphertext[i] = ((plaintext[i] - 'A' + key) % 26) + 'A';
} else {
ciphertext[i] = ((plaintext[i] - 'a' + key) % 26) + 'a';
}
} else {
ciphertext[i] = plaintext[i]; // 非字母字符不变
}
}
ciphertext[strlen(ciphertext) - 1] = '\0';
printf("加密后的密文: %s\n", ciphertext);
return 0;
}
```
在这个例子中,我们遍历输入的字符串,如果遇到字母就应用凯撒密码规则进行加密,非字母字符保持原样。注意,这个实现没有考虑空格、标点符号等其他字符。
阅读全文