1

私が取り組んでいるこのプログラムは、「プレーンテキスト」文字列が繰り返される vigenere cypher であり、各アルファベット文字は、アルファベット順に 0 でインデックス付けされた「キー」文字列 (argv[1]) によって調整されます。キー文字列の最後に到達すると、最初の文字にループバックする必要があります。私はしばらくこれに取り組んできましたが、このエラーでレンガの壁に到達しました。プログラムは "keyi" ("key" 文字列の反復を意味する) の初期化に到達し、"浮動小数点例外 (コア ダンプ)" というエラーをスローします。さて、ダンプされた「コア」ファイルを読み取る方法がわかりませんが、エラーに基づいて、私の定義が問題を引き起こしているフロートを何らかの形で作成していると推測します。私はただできる」ただし、フロートがどのように作成されているかはまったくわかりません。1 つの int と別の int の残りは int である必要がありますよね?

ここで他に何を試すことができるかわかりません。ここでの間違いが何であるかを学び、先に進みたいと思います.

for(int i = 0; i < strlen(plaintext); i++)
{
    if(isalpha(plaintext[i]))
    {
        printf("pass 0\n");
        int keyi = (i + strlen(argv[1])) % (strlen(argv[1]));
        printf("pass 1\n");
        char cipherchar = plaintext[i] + argv[1][keyi];

        //Adjust for 'alphabetical rotation'(when neccesary)
        if((isupper(plaintext[i]) && cipherchar > 'Z') || (islower(plaintext[i]) && cipherchar > 'z'))
            cipherchar -= 26;

        printf("%c", cipherchar);
4

0 に答える 0