【发布时间】:2013-04-24 18:16:45
【问题描述】:
我是 c 新手,我正在编写一个程序,该程序将使用 Caesar cipher 加密文本文件。每当我运行它时,它只会将字母转换为 SOH 字符。
加密.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);
【问题讨论】:
-
你忘了说“引用-取消引用加密”
-
while( (c = fgetc(inputF)) != EOF)中的建议括号 -
我在看 13 是否可行,因为 26 行不通。将括号添加到 while 循环摆脱了 SOH,但现在它什么也不写了。
-
尝试打印 ((-3) % 2) (作为整数)。
-
我把它放在哪里,我在找什么?
标签: c encryption