Ich versuche, ein Array von Groß- und Kleinbuchstaben gleichzeitig zu generieren.Logik hinter der Generierung zufälliger Groß- und Kleinbuchstaben
Ich verstehe die Logik hinter der Generierung von zwei getrennten Fällen von Buchstaben.
rand() % 26 + 65 // generate all the uppercase letter
während
rand() % 26 + 97 // generate all the lowercase letter
Ich habe versucht, googeln, wie beide miteinander zu erzeugen, und hier ist das, was ich erhielt.
rand() % 26 + 65 + rand() % 2 * 32 // generate both upper and lowercase letter
Leider haben sie nicht genau die Logik dahinter erklären, und ich möchte nicht nur blind kopieren und ihn in meine Aufgabe einfügen. Nach der Logik hinter dem rand() % 2 * 32
beim Hinzufügen des zweiten rand()
in den ersten rand()
gesucht.
Jede Hilfe wird geschätzt.
Dies ist nur langweilige Details der ASCII-Kodierung. Du kannst es eine Weile lang anstarren, bis es Sinn macht. –
Zunächst sollten Sie magische Zahlen vermeiden. Zum Beispiel ist das erste Snippet besser als 'rand()% ('Z' - 'A' + 1) + 'A'' geschrieben. –
Versuchen Sie zunächst, [* magische Zahlen *] zu vermeiden (https://en.wikipedia.org/wiki/Magic_number_ (Programmierung)). Wenn Sie den Buchstaben A meinen, dann sagen Sie es (wie in "A").Zweitens könnte das Lesen einer [ASCII-Tabelle] (http://en.cppreference.com/w/cpp/language/ascii) hilfreich sein. Es sollte auch darauf hingewiesen werden, dass Ihre Methode zur Generierung von Zeichen (obere, untere oder gemischte) nur auf Systemen funktioniert, die [ASCII] (https://en.wikipedia.org/wiki/ASCII) verwenden. Andere Kodierungen existieren noch, obwohl sie selten sind. –