Проверьте, является ли символ алфавитом c, прежде чем пытаться преобразовать (закодировать) его. Кроме того, не используйте цифры для кодов символов - используйте 'a'
вместо 97
, например. Я удалил некоторые броски, которые не нужны. Я также использовал cipherText
вместо (int)plainText[i]
, поскольку это позволяет избежать нежелательного расширения знака. Я также добавил несколько пробелов; код легче читать, если использовать пробелы разумно.
void CipherText(char* plainText, char* cipherKey)
{
int keyLength = strlen(cipherKey);
char cipherText;
for(int i = 0; i < strlen(plainText); i++)
{
int cipherText = (unsigned char)plainText[i];
if (isalpha(cipherText))
cipherText = (cipherText - 'a' + tolower(cipherKey[i]) - 'a') % 26 + 'A';
putchar(cipherText);
}
putchar('\n');
}