本题要求实现一个函数,能对一行字符串(字符串的长度<80)加密。 加密函数采用的加密算法:如果不是英文字母,就不加密,原样显示;否则就将字母加上一个偏移值5实现加密。注意大小写英文字母分别构成一个封闭环,如字符‘w’,加密后为字符‘b’。.c语言
时间: 2024-03-23 15:36:54 浏览: 113
以下是一个简单的 C 语言实现:
```c
#include <stdio.h>
#include <ctype.h>
#define OFFSET 5
void encrypt(char *str)
{
char c;
int i;
for (i = 0; str[i] != '\0'; i++) {
if (isalpha(str[i])) {
c = tolower(str[i]);
if (c >= 'a' && c <= 'z') {
c = 'a' + ((c - 'a' + OFFSET) % 26);
}
str[i] = isupper(str[i]) ? toupper(c) : c;
}
}
}
int main()
{
char str[80];
printf("Enter a string: ");
fgets(str, 80, stdin);
encrypt(str);
printf("Encrypted string: %s", str);
return 0;
}
```
该程序中,encrypt 函数接收一个字符串指针,遍历该字符串并对每个字母进行加密处理。isalpha 函数用于判断字符是否为字母,tolower 函数将字符转换为小写字母,toupper 函数将字符转换为大写字母。加密算法中,先将字母转换为小写字母,然后将其减去 'a',加上偏移值 OFFSET,最后取模 26 并加上 'a',即可得到加密后的字母。最后,根据原来的字符是否为大写字母,输出对应的加密字符。
阅读全文