谁能帮我看看这段简单的C程序?

来源:百度知道 编辑:UC知道 时间:2024/05/05 18:42:50
这是很简单的加密程序

#include <stdio.h>
#include <ctype.h>

int main(void)
{
char c;

while ( ( c = getchar() ) != EOF ) {
if ( isalpha(c) ) {
if ( isupper(c) ) {
c = (c - 'A' + 2) % 26 + 'A'; //请问这句是什么意思?
} else {
c = (c - 'a' + 2) % 26 + 'a'; //请问这句是什么意思?

}
}
putchar(c);
}

return 0;
}

其中c = (c - 'A' + 2) % 26 + 'A';究竟是什么意思?
能否给出反加密的程序?

'A'是一个字符 C中的字符可以做算术运算 取该字符相应的ASC码 所以中c = (c - 'A' + 2) % 26 + 'A'的输入的c和'A'取其ASC码对上式做算术运算

'A' 代表A的ASC码

其实你不用怕那些字符啊!
你就当作是一个小学的四则混合运算就行了!
只不过字符呢,用的是ascii码运算.
特别注意'2'和2不一样,'2'是字符,运算的时候用的是其ASCII码,,然后其他的多了一个%取余运算符号.