6-2(函数2样例)函数-2-字符串加密分数9 全屏浏览题目切换布局 本题要求实现一个函数,对字符串进行加密。具体加密规则:将字符串中的英文字母替换为字母表中下一个字母,如a替换为b,A替换为B,但z替换为a,Z替换为A;将字符串中的数字字符替换为前一个数字,如9替换为8,1替换为0,但0替换为9;字符串中其余字符不变。例如原字符串为Hello,加密后变为lfmmp。 函数接口定义 void encrypt (char sl]); 其中s是用户传入的参数,表示待加密的字符串。 裁判测试程序样例: 2 void encrypt (char s[): 34 int main( ) 5 6 char str[50]; 7 gets(str) 8 encrypt(str); puts(str); 18 return 11
时间: 2024-02-22 13:54:38 浏览: 278
好的,我明白了。这是一个字符串加密的问题,需要实现一个函数,对字符串中的英文字母和数字进行加密操作,规则是将字母和数字分别替换为它们的后一个和前一个字符,特殊情况是将 z 替换为 a,Z 替换为 A,将 0 替换为 9。
下面是这道题的函数实现示例:
```c
#include <stdio.h>
#include <string.h>
void encrypt(char s[]) {
int len = strlen(s);
for (int i = 0; i < len; i++) {
if (s[i] >= 'a' && s[i] < 'z') {
s[i] = s[i] + 1;
} else if (s[i] == 'z') {
s[i] = 'a';
} else if (s[i] >= 'A' && s[i] < 'Z') {
s[i] = s[i] + 1;
} else if (s[i] == 'Z') {
s[i] = 'A';
} else if (s[i] >= '1' && s[i] <= '9') {
s[i] = s[i] - 1;
} else if (s[i] == '0') {
s[i] = '9';
}
}
}
```
这个函数接收一个字符串作为参数,然后遍历字符串中的每个字符,按照规则进行加密操作,并将结果保存回原字符串中。
在主函数中,我们可以使用 gets 函数读入一个字符串,然后调用 encrypt 函数对其进行加密,最后使用 puts 函数输出加密后的字符串。
```c
int main() {
char str[50];
gets(str);
encrypt(str);
puts(str);
return 0;
}
```
注意,使用 gets 函数读入字符串时要注意输入的字符串长度不能超过数组大小,否则可能会导致缓冲区溢出。在实际开发中,应该使用 fgets 函数来更安全地读入字符串。
阅读全文
相关推荐


















