S1E15
#include <stdio.h>int main()
{
int ch;
printf("请输入明文;");
while((ch = getchar()) != '\n')
{
if (ch >= 'a' && ch <= 'z')
{
putchar('a' + (ch - 'a' + 3) % 26);
continue;
}
if (ch >= 'A' && ch <= 'Z')
{
putchar('A' + (ch - 'A' + 3) % 26);
continue;
}
putchar(ch);
}
putchar('\n');
return 0;
}
);
里面的putchar('a' + (ch - 'a' + 3) % 26是什么意思?%26又是什么意思?{:5_94:}
这不就是所谓的右移三位 里面的putchar('a' + (ch - 'a' + 3) % 26)意思就是 ch 的 ASCII编码值,减a 的编码值加3除以26,取余数运算,再加上a 的编码值,意思是把字母右移三位,
%26 是 除以26,取余数运算,比如ch = 'a',(ch - 'a' + 3) % 26取余数运算的值就是3,再加a 的编码值就是把字母a右移三位变成d。
请输入明文;abch ABCH
defk DEFK
页:
[1]