Random String Problem
-
Hi, ich hab grad Probiert, mir ne Funktion für nen 40-stelligen zufallsString zu schreiben un weiß jetz nich, wie ich in der for-Schleife die chars zum string hinzufüge... mit strcat() ging nicht, da "char * randomstring" nur n Satanskreuz wiedergibt -.- un bei sprintf_s nur 1 char in randomstring[] verbleibt...
bitte um Hilfe, hier der Code
void RandomString() { char chars[37] = "ABCDEFGHIJKLMNOPQRTSUVWXYZ0123456789"; char randchar; char randomstring[41] = "\0"; int count; srand((unsigned)time(NULL)); for(count=0;count<40;count++) { randchar = chars[rand()%36]; //randomstring<<randchar; //??? } }Gruß
-
Hä? Wir wollen dir doch helfen, also streng dich an und formuliere wenigstens eine verständliche Frage.
void RandomString() { char chars[37] = "ABCDEFGHIJKLMNOPQRTSUVWXYZ0123456789"; char randchar; char randomstring[41]; int count; srand((unsigned)time(NULL)); for(count=0;count<40;count++) { randchar = chars[rand()%36]; randomstring[count] = randchar; } }
-
äähm danke, du has meine frage schon beantwortet ohne dass ich sie gestellt hab

-
btw:
const int RANDOM_STRING_LENGTH = 40; void RandomString() { const char chars[] = "ABCDEFGHIJKLMNOPQRTSUVWXYZ0123456789"; char randomstring[RANDOM_STRING_LENGTH+1]; // srand((unsigned)time(NULL)); for(int count=0; count < RANDOM_STRING_LENGTH; count++) { char randchar = chars[rand() % (sizeof(chars)/sizeof(*chars))]; randomstring[count] = randchar; } randomstring[RANDOM_STRING_LENGTH] = '\0'; }bb
edit: 36 durch länge ersetzt
-
unskilled schrieb:
btw:
const int RANDOM_STRING_LENGTH = 40; void RandomString() { const char chars[] = "ABCDEFGHIJKLMNOPQRTSUVWXYZ0123456789"; char randomstring[RANDOM_STRING_LENGTH+1]; // srand((unsigned)time(NULL)); for(int count=0; count < RANDOM_STRING_LENGTH; count++) { char randchar = chars[rand()%36]; randomstring[count] = randchar; } randomstring[RANDOM_STRING_LENGTH] = '\0'; }bb
Na warum nicht gleich mit strings
:void RandomString( ) { const std::string chars( "ABCDEFGHIJKLMNOPQRTSUVWXYZ0123456789" ); std::string randomstring; for( unsigned int count = 0; count != chars.size( ); ++count ) { randomstring.push_back( chars[rand( ) % 36] ); } }
-
wieso braucht man hier denn strings? Oo hier seh ich echt nich so die vorteile von string ggnüber char...
hatte btw noch vergessen, die 36 zu ersetzen - hab ich mal nachgeholt...bb
-
Naja, mit strings zu arbeiten finde ich schöner als solche Sachen zu sehen:
const int RANDOM_STRING_LENGTH = 40;
-
Kóyaánasqatsi schrieb:
Naja, mit strings zu arbeiten finde ich schöner als solche Sachen zu sehen:
const int RANDOM_STRING_LENGTH = 40;wenns zur compilezeit bekannt ist - wieso nicht?
-
unskilled schrieb:
Kóyaánasqatsi schrieb:
Naja, mit strings zu arbeiten finde ich schöner als solche Sachen zu sehen:
const int RANDOM_STRING_LENGTH = 40;wenns zur compilezeit bekannt ist - wieso nicht?
Weil es, mir persönlich, zu undynamisch ist.
-
Dann aber bitte auch mit:
std::string chars; for(int i = 0; i < 255; i++) if (std::isgraph(i)) chars.push_back((char)(i));Sonst haben wir ja keine vernünftigen Zeichen.
