## 2.代码

`#include <stdio.h>#include <string.h>//加密int encrypt(char* plaintext, char* ciphertext, int k){    int i, z = 0;    int l = strlen(plaintext); //获取明文的长度    for (i = 0; i < l; i++)    {        //判断大小写        if (plaintext[i] >= 'A' && plaintext[i] <= 'Z') {            ciphertext[z] = ( (plaintext[i] - 'A') + k) % 26 + 'A';        }        else if (plaintext[i] >= 'a' && plaintext[i] <= 'z') {            ciphertext[z] = ((plaintext[i] - 'a') + k) % 26 + 'a';        }        else {  //判断是否是空格            ciphertext[z] = plaintext[i];        }        z++;    }    return 0;}//解密int decrypt(char* plaintext, char* ciphertext, int k){    int i, z = 0;    int l = strlen(plaintext); //获取明文的长度    for (i = 0; i < l; i++)    {        //判断大小写        if (plaintext[i] >= 'A' && plaintext[i] <= 'Z') {            ciphertext[z] = (((plaintext[i] - 'A') - k)) % 26 + 'A';            if (((plaintext[i] - 'A') - k) < 0) {                ciphertext[z] = ciphertext[z] + 26;            }        }        else if (plaintext[i] >= 'a' && plaintext[i] <= 'z') {            ciphertext[z] = ( ((plaintext[i] - 'a') - k)) % 26 + 'a';            if (((plaintext[i] - 'a') - k) < 0) {  //处理负数                ciphertext[z] = ciphertext[z] + 26;            }        }        else {  //判断是否是空格            ciphertext[z] = plaintext[i];        }        z++;    }    return 0;}int main(){    char plaintext[50] = "";    char ciphertext[50] = "";    int k;    int type;    printf("请填写明文或者密文:\n");    scanf("%s", plaintext);    printf("请选择加密方式，输入1加密，输入2解密\n");    scanf("%d", &type);    if (type == 1) {        //加密        printf("请输入密钥k:\n");        scanf("%d", &k);        encrypt(plaintext, ciphertext, k);        printf("明文%s的密文为:%s\n", plaintext, ciphertext);    }    else if (type == 2) {        //解密        printf("请输入密钥k:\n");        scanf("%d", &k);        decrypt(plaintext, ciphertext, k);        printf("密文%s的明文为:%s\n", plaintext, ciphertext);    }    return 0;}`