私はプログラムを作ろうとしました。それはビジェーレの暗号を使っていました。すべての3番目の文字は間違っています。誰かが私にヒントを与えることができますか?お手伝いありがとう。ビジェーレの暗号を使ってメッセージを暗号化するプログラムを実装すると、C
#include <stdio.h>
#include <cs50.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
int main(int argc, string argv[])
{
int n = 0;
int j = 0;
int p;
int l;
int x = 0;
if(argc != 2)
{
printf("missing command-line argument\n");
return 1;
} else
{
printf("plaintext: ");
}
string text = get_string();
string key = (argv[1]);
printf("ciphertext: ");
for (j = 0, x = 0, n = strlen(text); j < n; j++)
{
p = (((text[j] - 65) + ((key[x] - 65) % strlen(key))) % 26) + 65;
l = (((text[j] - 97) + ((key[x] - 97) % strlen(key))) % 26) + 97;
if(isalpha(text[j]))
{
if(isupper (text[j]))
{
printf("%c", p);
x++;
}
if(islower (text[j]))
{
printf("%c", l);
x++;
}
}else
{
printf("%c", text[j]);
}
if(x == strlen(key))
{
x = 0;
}
}
printf("\n");
return 0;
}
私はint型のp、int型のLが間違っている場合は、それは他の問題であれば入れて理解することはできません。
聞くには、入力/出力exempel
です:)「」「」「」
キーワード
としてを使用して:(として「バズ」を使用して「caqgon」として「barfooを」暗号化とを暗号化し、期待される出力\キーワード ではなく、 "暗号文:casgopする\ n":は:("CaQGon" 期待される出力\キーワード として "バズ" を使用してではなく、 "CaSGoo \ n個の暗号文" として "BaRFoo" を暗号化し、
:(「BARFOO」を「CAQGON」として暗号化する期待される出力\キーワード として "BAZ" が、 "暗号文:CASGOP \ n" はない
は:(予想される出力\キーワード として "バズ" を使用して "!?世界$" "!?xoqmd $" などを暗号化し、ではなく、 "暗号文:!xosmd $ \ nは?"
は:("世界は、挨拶!" と期待出力\キーワード として "バズ" を使用して、暗号化ではなく、「暗号文 "xoqmd、RBYのgflkp!": \ n "
あなたはどんなインプットを提供していますか、どのようなアウトプットを期待していますか?コードは、それが読みにくいので、インデントされた方が良いでしょう。 –
@ChrisTurner私の推測では、引数として渡されたキー(argv [1])は3文字の長さの文字列です。 acipi9 if(x == strlen(key)+1) –
@ J.A.I.Lで試してください。推測よりも入出力の実際の例を持つほうがよいでしょう:) –