ROBボーデンは:こんにちは、私はロブだ。 ローマでは、課程せると ローマ人はそうであるように。 だから、我々がする必要がある最初の事はチェックです 必ず、ユーザが実際に入力させるために 我々は、それぞれを回転する番号 コマンドラインでのAによる文字。 そこで、我々は確認してください。 2へのargc等しい? そうでない場合は、そのいずれかのユーザーを意味します で番号を入力しませんでした コマンドラインまたは彼らはあまりにも多く入った コマンドラインでの事、中 我々は何をすべきか分からない場合 物事の残りの部分と。 だから、限りARGCが2だったので、我々はできる プログラムの残りの部分を続行します。 今、そのARGVを覚えている 1は常に文字列です。 しかし、我々は、整数として扱いたい。 そこで、だatoi関数関数を使用する 変換するPセットの仕様を述べた 整数に文字列ARGV 1、 そして我々は、キーにそれを格納します。 我々は確認していることを確認したい整数 それは否定的ではありません入力されました。 それがあったなら、我々はにそれを印刷する 彼らは許可されていないユーザー それをして、戻ります。 だから、今、我々は有効なを持っている ユーザーからの数。 しかし、我々はから文字列を取得する必要があります 我々は暗号化したいユーザー。 だから我々は、ループしながら、何とGETを使用するために使用される からこの文字列を取得するための文字列 ユーザー、および文字列を取得し続ける 彼らが実際になるまで 有効な文字列を入力します。 私たちは、その文字列を取得したら、 それを暗号化するために行くことができます。 したがって、このループをやっている その暗号化。 我々は、私から繰り返し処理していることに注意してください 私等号まで0トンのすべての方法に等しい nは、長さとして定義されるn個、 メッセージが私たちのメッセージを、 ユーザーが入力した文字列。 だから我々は、すべての繰り返しを行なっている 文字列内の文字。 文字が大文字である場合は、 我々はこれを使用して、それをシフトしようとしている 式、その我々はよ 第二にに着く。 そしてそれは小文字れた場合、 私たちは、これは使用してシフトします 非常によく似た式。 そして、それは、大文字でもどちらである場合 小文字 - 例えば、それ 数字や記号かもしれない - そして我々 それには何もするつもりはありません。 だから、これらの式は何ですか? さて、どのように我々は、文字Aをシフトしますか? 私たちは、キャラクターを扱いたい 番号0として。 そして、我々はキャラクターを扱いたい というように番号1などのB。 それは、ゼロ番目と第文字だ アルファベットののように。 だからここに、メッセージIマイナスAが想定されている 私たちの数値場所を与えるために アルファベットの文字。 ので、メッセージ場合、私は、これです 私たちに0を与えるために起こっている。 今、私たちはそのインクルードに追加する ユーザーが望んでいる数 で手紙を回転させます。 だから、彼らは、メッセージと、3と入力した場合 私がいた、これは私たちに0を与えるとプラスになる キーは私達に3を与える。 だから今、私たちは検討しています アルファベットで3位。 我々はMODを必要とする理由当社は、表示されます 秒間にnum個の文字で。 しかし最終的に、私たちはへ追加する 背中に私たちをシフトするために、再び終了 これらの文字のASCII値 代わりに、中の数値の場所 これらの文字のアルファベット。 では、なぜ我々はnum個の文字で国防省のですか? 我々はラップアラウンドすることを忘れないでください アルファベットの最後からまで アルファベットの先頭。 ユーザが入力した場合、Zは、 それからAを減算するために起こっている 私たちに25を与える。 とキーはその後、3ならば 我々は28を持っているつもりです。 しかし、Zは、ABC、とても28にラップアラウンドする必要があり ハッシュが定義されているMODのnum文字、 予想される26のような、与えるために起こっている Cは第二の手紙で、私たち2、 アルファベット、あなたは、Aがあることを覚えていれば アルファベットのゼロ番目の手紙。 我々はする必要がある理由ので、それはです num個の文字でMOD。 今、私たちはまったく同じことを行う必要がある 小文字を除くため 我々が扱っているときを覚えている 小文字、それらは異なるがある ASCII値。 そして私たちは減算し、上で追加する必要があります 小文字からそれをシフトする その後、ASCII値とバックに オリジナルの小文字のASCII値。 そして最後に、それは私たちをあげる 私たちの暗号化されたメッセージ。 そして最後に、我々だけでプリントアウト そのメッセージ、そして、それはそれだ。 私の名前はロブで、シーザーた。