Random char
-
Hallo,
ich möchte mir einen zufälligen Text erstellen, habe da schon ein paar Vorstellungen:char random[31]; for (int i=0;i<30;i++) { random [i] = // zufall; }
Gibt es hierfür schon eine funktion oder sowas?
MFG
-
Man Killur ein Thread neben dir wird das gerade besprochen
http://www.c-plusplus.net/forum/281024
Wenn du dann noch nicht weisst wie:
http://www.cplusplus.com/reference/clibrary/cstdlib/srand/
http://www.cplusplus.com/reference/clibrary/cstdlib/rand/
-
Da gehts aber nicht um das Gleiche.
Und ich würde nicht zu
char
-Arrays greifen, du machst dir damit das Leben unnötig schwer.#include <string> #include <algorithm> char RandomChar(); // Erzeugt zufälligen Buchstaben int main() { std::string str(30, ' '); std::generate(str.begin(), str.end(), &RandomChar); }
-
Ob der TA damit viel anfangen kann @ Nexus? Schön ist es ohne Frage...
-
Keine Ahnung, aber eine einfache Schleife wird er wohl auch noch selbst hinkriegen. Genauso wie die Implementierung von
RandomChar()
.
-
Ehm, kann man rand() nicht auf strings anwenden?
Weil:
Mein Code sieht so aus#include <iostream> #include <windows.h> #include <string> #include <cstdio> #include <cstdlib> #include <ctime> using namespace std; string s; int main() { s.reserve(50); srand ( time(NULL) ); for(int i=0;i<s.length();i++) { s[i] = rand() % 9 + 1; } cout << s.c_str(); Sleep(5000); }
Wenn ich das kompiliere kommen nur so komische Zeichen und mein Pc fängt an zu piepsen ó.ò
-
Killur schrieb:
Wenn ich das kompiliere kommen nur so komische Zeichen und mein Pc fängt an zu piepsen ó.ò
...dann hast du wohl die 7 getroffen. Schau mal, dass deine Zufallszahlen >= 32 werden.
-
Schau mal in die ASCII-Tabelle welche Zeichen 1-9 sind.
http://www.torsten-horn.de/techdocs/ascii.htm
Dann überlege, welches Zeichen du hinzuaddieren möchtest z.B. '0' oder 'a'.
-
Addiere '0' zu deinen Zufallszahlen drauf.
-
Du kannst die Zahl auch einfach nach char umcasten.
Aber egal, danach wirst du keine Texte bekommen. Ich hab mir da auch mal meine Gedanken gemacht, denn du wirst viel zu viele Konsonanten bekommen. Ich habs geschafft 3-Stellige Namen zu generieren, aber alles weitere ist mit zu vielen if-Abfragen verbunden. Du musst darauf achten, dass bestimmte Konsonanten nicht doppelt vorkommen, bestimmte Kombis nicht eintreten dürfen uvm. Das ist ziemlich kompliziert.