![]() |
Мне нужен генератор рандомных чисел и букв, чтобы получалось +- так: G31HDK, при этом, буквы и цифры стояли в разных местах, а может цифр вообще не быть. Почитал, нигде эту информацию не нашёл. Буквы смог сгенерировать через distr ('A', 'Z') , цифры через rand, а вот как их совместить и заменять - не понял.. Если кто-то знает, скажите пожалуйста.
|
Цитата:
C++: [CODE] std :: string random_string ( size_t length ) { auto randchar = [ ] ( ) -> char { const char chars [ ] = "0123456789" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz" ; const size_t max_index = ( sizeof ( chars ) - 1 ) ; return chars [ rand ( ) % max_index ] ; } ; std :: string str ( length , 0 ) ; std :: generate_n ( str . begin ( ) , length , randchar ) ; return str ; } int main ( ) { std :: cout |
Цитата:
C++: [CODE] #include #include #include #include using namespace std ; std :: string random_string ( size_t length ) { string chars = "0123456789" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz" ; random_device device ; mt19937 generator ( device ( ) ) ; string str ; for ( size_t i = 0 ; i distribution ( 0 , chars . size ( ) - 1 ) ; str += chars . at ( distribution ( generator ) ) ; } return str ; } int main ( ) { std :: cout |
[QUOTE="Dark_Knight"]
Это конечно хорошо, но чет оно выдает одни и те же значения) Цитата:
C++: [CODE] #include #include #include #include using namespace std ; std :: string random_string ( size_t length ) { string chars = "0123456789" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz" ; random_device device ; mt19937 generator ( device ( ) ) ; string str ; for ( size_t i = 0 ; i distribution ( 0 , chars . size ( ) - 1 ) ; str += chars . at ( distribution ( generator ) ) ; } return str ; } int main ( ) { std :: cout |
Цитата:
|
Цитата:
|
| Время: 10:28 |