我是c的新手,我正在编写一个程序,用Caesar cipher加密文本文件。每当我运行它时,它只是将字母转换为SOH字符。
encryption.c
char *lowerAlpha= "abcdefghijklmnopqrstuvxxyz";
char *upperAlpha= "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int encrypt(int c, int amount)
{
char* alpha;
int retVal = c;
int i;
if(isalpha(c))
{
if(islower(c))
{
alpha = lowerAlpha;
i = (c - 'a' - amount) % 26;
retVal = alpha[i];
}
else if(isupper(c))
{
alpha = upperAlpha;
i = (c -'A' - amount) % 13;
retVal = alpha[i];
}
}
return retVal;
}
在另一个我使用主要方法的文件中
encryptFile(inputfile, outputfile, 13);
答案 0 :(得分:0)
您在加密过程中减去'A'
或'a'
以将字符值转换为0 .. 25
范围,并且您永远不会添加任何内容以将其重新转换为字母。