所以我正在编写一个密码程序作为哈佛 CS50 课程的一部分,我有这个代码来检查一个字符 + 密码密钥是否会将其置于 ASCII 字母范围之外,并在它出现时将其循环回来(以及保留案子)。循环遍历的数组类型是“char”(纯文本)和“int”(cipherArray)
if (((plainText[i] < 91) && ((plainText[i] + cipherArray[j]) > 90)) || ((plainText[i] > 97) && ((plainText[i] + cipherArray[j]) > 122)))
{
printf("%c", ((plainText[i] + cipherArray[j]) - 26));
}
else
{
printf("%c", (plainText[i] + cipherArray[j]));
}
但是上面的代码有点笨拙,我试图通过用我这样编写的函数替换它来整理它:
char codeLetters(char a, int b)
{
if (((a < 91) && (a + b) > 90) || ((a > 97) && (a + b) > 122))
{
char c = (a + b) - 26;
}
else
{
char c = a + b;
}
return c;
}
我的想法是我可以使用以下方法调用该函数:
char code = codeLetters(plainText[i], cipherArray[j]);
printf("%c", code);
但是,当我尝试编译它时,会出现以下错误:
vgen1.c:114:14: 错误:未使用的变量 'c' [-Werror,-Wunused-variable] char c = (a + b) - 26; ^ vgen1.c:118:14: 错误:未使用的变量 'c' [-Werror,-Wunused-variable] char c = a + b; ^ vgen1.c:121:12: 错误:使用未声明的标识符“c”返回 c;
有人可以让我知道我哪里出错了吗?作为记录,我在这段代码中有另一个运行得很好的函数