シーザー暗号プログラム(その2)
先ほどのプログラムを少し改良して大文字、小文字、プラスαを扱えるようにしました。
while(string[i] != '\0'){ number = (string[i] - 'a' + key) % 26; angou[i] = 'a' + number; ++i; }
の部分を次のように改造します。
while(string[i] != '\0'){ number = (string[i] - 'A' + key) % 58; angou[i] = 'A' + number; ++i; }
これは、'A'の値が65、'a'の値が97と表示されたので大文字A~小文字zまでが58文字あるだろうと類推しました。('A'や'a'の値は環境によって違いますが、A~zまで58文字であることは変わりません)
この改造は副作用で [ \ ] ^ _ `を扱えるので解読するには英アルファベットではなくJISコード表を見なくてはなりませんが・・・。(Zooを2文字ずらすと\qqとなる)
| 固定リンク
「C」カテゴリの記事
- CG法(2008.12.09)
- NTEmacs + MinGW + MSYSでWindows上にC言語開発環境を構築してみる - その5(2008.10.10)
- NTEmacs + MinGW + MSYSでWindows上にC言語開発環境を構築してみる - その4(2008.10.09)
- NTEmacs + MinGW + MSYSでWindows上にC言語開発環境を構築してみる - その3(2008.10.08)
- NTEmacs + MinGW + MSYSでWindows上にC言語開発環境を構築してみる - その2(2008.10.07)
「Algorithm」カテゴリの記事
- コラッツの問題(2008.02.21)
- フィボナッチ数を求める(2008.02.19)
- べき剰余を求める(2008.02.12)
- RSA暗号プログラム(2008.02.09)
- RSA暗号の公開鍵と秘密鍵を生成する(2008.02.08)
この記事へのコメントは終了しました。
コメント