• 智能AI问答!更聪明、更完整、原创作!
  • 一款基于GPT的超级AI机器人,可以回答问题、聊天、创作、写文案!

两个同学之间通信,但是不想让别人知道通信的内容,于是相互约定:将a转化为c,b转化为d....x转化为z,y转化为a,z转化为b,大写字母同理。试从键盘上输入多个大写或小写字母

发布于 2024-05-04 12:19:55

为了实现这个加密通信的功能,我们可以编写一个C语言程序,该程序将从键盘读取字符,直到遇到结束符#,然后按照约定的规则进行加密。以下是实现这个功能的C语言代码:

#include <stdio.h>

// 函数用于加密单个字符
char encrypt_char(char ch) {
    if (ch >= 'a' && ch <= 'y') {
        return ch + 1;
    } else if (ch == 'z') {
        return 'b';
    } else if (ch >= 'A' && ch <= 'Y') {
        return ch + 1;
    } else if (ch == 'Z') {
        return 'B';
    }
    // 非字母字符不变
    return ch;
}

int main() {
    char input[100], encrypted[100];
    int i = 0;

    printf("请输入字符(以#做结束符): ");

    // 读取输入直到遇到#
    while (1) {
        scanf(" %c", &input[i]);
        if (input[i] == '#') {
            break;
        }
        input[i++] = encrypt_char(input[i]);
    }

    // 将加密后的字符复制到encrypted数组
    for (int j = 0; j < i; j++) {
        encrypted[j] = input[j];
    }
    encrypted[i] = '\0'; // 确保字符串以空字符结尾

    // 输出加密后的字符串
    printf("加密后的字符串为: %s\n", encrypted);

    return 0;
}

在这个程序中,我们首先定义了一个encrypt_char函数来处理单个字符的加密。然后在main函数中,我们创建了一个字符数组input来存储用户的输入,并创建了另一个字符数组encrypted来存储加密后的字符串。

我们使用scanf函数读取用户输入的字符,直到遇到#字符作为结束符。在读取过程中,我们立即对每个字符进行加密,并将加密后的字符存储在input数组中。这样做的好处是我们不需要再次遍历数组来进行加密,因为输入的同时已经完成了加密。

最后,我们将加密后的字符从input数组复制到encrypted数组,并确保encrypted数组以空字符结尾。然后,我们打印出加密后的字符串。

这个程序假设用户输入的字符数量不会超过99个,这是为了确保input数组和encrypted数组不会溢出。在实际应用中,可能需要更健壮的错误检查和边界条件处理。

0 条评论

发布
问题

在线
客服