在每个 if 语句的最后一行,'ciphered_text' 中的当前数组元素已从中减去 26。但是,这似乎仅适用于第一部分,而不适用于第二部分。谁能明白为什么?顺便说一句,任何人都可以告诉我是否应该在这里使用 else if 或 else。谢谢。
for(arrayelement = 0; arrayelement < size; arrayelement++)
{
ciphered_text[arrayelement] = (plain_text[arrayelement]);
if ((int)(ciphered_text[arrayelement]) >= 65 && (int)(ciphered_text[arrayelement]) <= 90)
{
ciphered_text[arrayelement] = (int)(ciphered_text[arrayelement]) + shiftkey;
if (ciphered_text[arrayelement] > 90)
ciphered_text[arrayelement] = (int)(ciphered_text[arrayelement]) - 26;
}
else if ((int)(ciphered_text[arrayelement]) >= 97 && (int)(ciphered_text[arrayelement]) <= 122)
{
ciphered_text[arrayelement] = (int)(ciphered_text[arrayelement]) + shiftkey;
if (ciphered_text[arrayelement] > 122)
ciphered_text[arrayelement] = (int)(ciphered_text[arrayelement]) - 26;
}
}