Если вы предпочитаете использовать стандартную библиотеку, то вы можете сделать что-то вроде этого:
<somewhere else>
srand(NULL);
</somewhere else>
char get_rand_char() {
static string charset(...);
return charset[rand() % charset.size()];
}
std::string generate_random_string(size_t n) {
char rbuf[n];
std::generate(rbuf, rbuf+n, &get_rand_char);
return std::string(rbuf, n);
}
Этот код, естественно, более модульный, и администраторы стандартных библиотек, как правило, пишут код лучше меня. Таким образом, я могу изменить часть кода, генерирующую случайные символы, не затрагивая ничего другого. Я мог бы даже перейти к функции, которая случайным образом выбирает генератор случайных чисел! Не то, чтобы это усугубляло случайность или что-нибудь ...