C语言输入一个以回车符为结束标志的字符串(明文,少于80个字符)存放在字符数组s中,再输入一个正整数密钥n,将s中所有的大、小写字母用其后第n个字母替换,遇到“z”或者“Z”则向前折返到“a”或“A”,最后将加密后的字符串输出。
时间: 2023-08-24 19:07:16 浏览: 173
以下是实现该功能的 C 代码:
```c
#include <stdio.h>
#include <ctype.h> // 包含 isupper 和 islower 函数的头文件
int main() {
char s[81]; // 字符串数组
int n; // 密钥
printf("请输入明文字符串(少于80个字符):");
scanf("%[^\n]", s); // 输入字符串,%[^\n] 表示输入到遇到回车符为止
printf("请输入密钥(正整数):");
scanf("%d", &n);
// 加密字符串
for (int i = 0; s[i]; i++) {
if (isupper(s[i])) { // 大写字母
s[i] = ((s[i] - 'A') + n) % 26 + 'A'; // 替换
} else if (islower(s[i])) { // 小写字母
s[i] = ((s[i] - 'a') + n) % 26 + 'a'; // 替换
}
}
// 输出加密后的字符串
printf("加密后的字符串为:%s\n", s);
return 0;
}
```
需要注意的是,这里使用了 `isupper` 和 `islower` 函数来判断字符是否为大写或小写字母。同时,为了保证对于字符串中的空格和其他非字母字符不做处理,使用了 `%[^\n]` 的格式化字符来输入字符串。
阅读全文