用C语言编写一个程序,将一个包含大小写字母的纯字母密文串转换为纯大写字母的明文串输出。 解密规则为: 加密字母转换为其对应大写字母的后面第3个大写字母('X','Y','Z'转换为'A','B','C') 如: 明文串为 “prZzbpP”, 则: 转换成大写明文串为“SUCCESS”输出。 用函数 void process(char s[],char s1[])实现转换,将s中的密文串转换为大写明文串后放进s1数组中 在主函数中调用process函数测试程序。 【运行结果示例】 输入: (不要中文提示) prZzbpP 输出: (不要中文提示) SUCCESS,要有字符串结束标记
时间: 2023-12-10 18:02:34 浏览: 68
以下是用C语言编写的程序:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void process(char s[], char s1[]);
int main()
{
char s[100], s1[100];
printf("请输入密文串:");
scanf("%s", s);
process(s, s1);
printf("明文串为:%s\n", s1);
return 0;
}
void process(char s[], char s1[])
{
int len = strlen(s);
for (int i = 0; i < len; i++)
{
if (islower(s[i])) // 如果是小写字母
{
s[i] = toupper(s[i]); // 转成大写字母
s[i] += 3; // 后移3位
if (s[i] > 'Z') // 超出了字母表
s[i] -= 26; // 回到字母表开头
}
s1[i] = s[i]; // 复制到明文串中
}
s1[len] = '\0'; // 字符串结束标记
}
```
程序思路:
1. 定义一个 process 函数,用于将密文串转换为明文串;
2. 在 process 函数中,遍历密文串中的每个字符;
3. 如果是小写字母,就转成大写字母,然后后移3个位置,如果超出了字母表就回到字母表开头;
4. 将处理后的字符复制到明文串中;
5. 最后在明文串末尾加上字符串结束标记 '\0'。
注意事项:
1. 要包含头文件 string.h 和 ctype.h,才能使用 strlen、toupper 和 islower 函数;
2. 输入密文串时,不需要加上字符串结束标记 '\0',scanf 函数会自动添加;
3. 输出明文串时,要手动添加字符串结束标记 '\0'。