C语言字符串加密含子函数程序
时间: 2024-11-07 09:12:27 浏览: 42
C语言中可以使用一些加密算法来对字符串进行加密处理。常见的如Caesar密码、替换密码、简单的位移(XOR)等。这里以简单的Caesar密码为例,这是一种基于字母表偏移的简单加密方法。下面是一个简单的子函数程序,用于将输入字符串向右移动固定位数:
```c
#include <stdio.h>
#include <string.h>
void caesar_encrypt(char* input_str, int shift) {
if (input_str == NULL || strlen(input_str) == 0) {
printf("Input string is empty.\n");
return;
}
// 将大写字母转换为ASCII值
for (int i = 0; i < strlen(input_str); ++i) {
char c = input_str[i];
if ('A' <= c && c <= 'Z') { // 如果是大写字母
c = ((c - 'A' + shift) % 26) + 'A'; // 加密
} else if ('a' <= c && c <= 'z') { // 如果是小写字母
c = ((c - 'a' + shift) % 26) + 'a'; // 加密
}
// 更新字符并保留原位置
input_str[i] = c;
}
}
int main() {
char str[100];
int shift;
printf("Enter the string to encrypt: ");
fgets(str, sizeof(str), stdin);
str[strlen(str)-1] = '\0'; // Remove newline
printf("Enter the shift value (1-25): ");
scanf("%d", &shift);
caesar_encrypt(str, shift);
printf("Encrypted string: %s\n", str);
return 0;
}
```
在这个程序中,`caesar_encrypt` 函数接受一个字符串 `input_str` 和一个整数 `shift`,将字符串中的每个字符按照给定的偏移量进行加密。注意这个例子只适用于英文字符,并且不会考虑非字母字符。
阅读全文