大文字と小文字の両方の配列を同時に生成しようとしています。ランダムな大文字と小文字の生成の背後にあるロジック
私は文字の2つの別々のケースを生成する背後にある論理を理解しています。
rand() % 26 + 65 // generate all the uppercase letter
rand() % 26 + 97 // generate all the lowercase letter
ながら、私は一緒にそれらの両方を生成する方法をグーグルでみました、ここで私が得たものです。
rand() % 26 + 65 + rand() % 2 * 32 // generate both upper and lowercase letter
残念ながら、彼らは正確にその背後にあるロジックを説明していなかったと私はちょうど盲目的にコピーしたいと私の割り当てに貼り付けないでください。最初のrand()
にrand()
を追加するときは、rand() % 2 * 32
の背後にあるロジックの高低を検索していました。
ご協力いただければ幸いです。
これは、ASCIIエンコードだけの退屈な内容です。それが意味をなさないようになるまで、あなたはそれをしばらく注視することができます。 –
まず、魔法の数字を避けるべきです。たとえば、最初のスニペットは 'rand()%( 'Z' - 'A' + 1)+ 'A' 'と書く方が良いでしょう。 –
まず、[* magic numbers *](https://en.wikipedia.org/wiki/Magic_number_(プログラミング))は避けてください。あなたが文字Aを意味するなら、そう言いなさい( '' A ''のように)。第2に、[ASCIIテーブル](http://en.cppreference.com/w/cpp/language/ascii)を読むことが役に立ちます。文字の生成方法(上位、下位、または混在)は、[ASCII](https://en.wikipedia.org/wiki/ASCII)を使用するシステムでのみ機能することにも注意してください。他のエンコーディングはまれですが、まだ存在します。 –