I am looking for methods to generate random strings in C++.Here is my code:
string randomStrGen(int length) {
static string charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
string result;
result.resize(length);
srand(time(NULL));
for (int i = 0; i < length; i++)
result[i] = charset[rand() % charset.length()];
return result;
}
But the seed(time(NULL)) is not random enough.Are there any other better way to generate random strings in C++?
Don’t call
srand()on each function call – only call it once at first function call or program startup. You migh want to have a flag indicating whethersrand()has already been called.The sugested method is good except that you misuse
srand()and get predictably bad results.