0

これが私の機能です:

// Helper function for cipher()
void cipherc(char& c, int key)
{
    if (isupper(c)) {
        c -= 'A';
    } else {
        c -= 'a';
    }

    c += key;
    c %= MAX_KEY;

    if (isupper(c)) {
       c += 'A';
    } else {
        c += 'a';
    }
}

大文字をサポートするように設計しましたが、これでうまくいくと思いました。どうやら私は自分が何をしているのか分かりません。誰かがこれを行う、またはこれを修正するためのより良い方法を教えてくれたら、それは素晴らしいことです. 私は(できれば)関数を同じに保ちたいとchar&思いintますvoid

4

1 に答える 1

0

そのようなコードを試してください:

   char d = isupper(c) ? 'A' : 'a';
   c -= d;
   c += key;
   c %= MAX_KEY;
   c += d;
于 2013-10-17T00:52:49.463 に答える