ヴィジュネル暗号のプログラムを書いています。しかし、プレーンテキストの最後までキーを繰り返す方法がわかりません。現在、私のコードは、キーの文字数に相当する文字のみを暗号化しています。たとえば、「dog」のキーを入力し、プレーンテキストが「catdog」の場合、「fozdyw」の暗号化されたテキストが表示されます。これは、最初の3文字のみを暗号化することを意味します。
これは、暗号化を行う私のコードの一部です。
for (int j=0, k=0; j < strlen(text); j++, k++)
{
if((text[j] >= 'A') && (text[j] <= 'Z'))
text[j] = ((text[j] -'A') + key[k]) % 26 +'A';
if((text[j] >= 'a') && (text[j] <= 'z'))
text[j] = ((text[j] -'a') + key[k]) % 26 +'a';
printf("%c", text[j]);
}
私は何が間違っているのですか?そして、何をするのが正しいのでしょうか?