有人可以为我解释这段代码吗

Could someone explain this code for me please

我在网上找到了这个凯撒密码加密代码,我想了解它是如何工作的

#include<stdio.h>

int main()
{
char message[100], ch;
int i, key;

printf("Enter a message to encrypt: ");
gets(message);
printf("Enter key: ");
scanf("%d", &key);

for(i = 0; message[i] != '[=10=]'; ++i){
    ch = message[i];

    if(ch >= 'a' && ch <= 'z'){
        ch = ch + key;

        if(ch > 'z'){
            ch = ch - 'z' + 'a' - 1;
        }

        message[i] = ch;
    }
    else if(ch >= 'A' && ch <= 'Z'){
        ch = ch + key;

        if(ch > 'Z'){
            ch = ch - 'Z' + 'A' - 1;
        }

        message[i] = ch;
    }
}

printf("Encrypted message: %s", message);

return 0;
}

非常感谢

代码为每个输入的字符添加特定值 (key),"rotates" 范围内的字符 a-z 如果是小型大写字母,如果是大写字母则为 A-Z .

在 C 中,每个单个字符都有一个隐含的 ascii/int 值,比较运算符用于确定输入的字符是否在字符集中 a-z(它们彼此对齐)或者如果它在 A-Z 的集合中,它们也紧随其后。

如果输入的字符加上 key "overshoots" f.e,其余代码将处理回绕。 zZ 并通过减去 'z' 的值并添加 'a' -1 的值来循环它,以便生成的 char 再次成为 [= 的选定范围内的一个11=] 或 A-Z