 |

13.02.2022, 17:44
|
|
Новичок
Регистрация: 29.09.2019
Сообщений: 15
С нами:
3486475
Репутация:
3
|
|
Мне нужен генератор рандомных чисел и букв, чтобы получалось +- так: G31HDK, при этом, буквы и цифры стояли в разных местах, а может цифр вообще не быть. Почитал, нигде эту информацию не нашёл. Буквы смог сгенерировать через distr ('A', 'Z') , цифры через rand, а вот как их совместить и заменять - не понял.. Если кто-то знает, скажите пожалуйста.
|
|
|

13.02.2022, 18:20
|
|
Познающий
Регистрация: 18.01.2022
Сообщений: 38
С нами:
2273928
Репутация:
13
|
|
Сообщение от Michael_Komas
Почитал, нигде эту информацию не нашёл.
по первой ссылке в гугле
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
|
|
|

14.02.2022, 20:16
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Сообщение от resolveZ
по первой ссылке в гугле
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
[/COLOR]
Попробуй вот это. Мб тебе подойдет. Написал на отьебись, но выдает у меня на сайте выше всегда разную строку
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
|
|
|

17.02.2022, 21:57
|
|
Новичок
Регистрация: 29.09.2019
Сообщений: 15
С нами:
3486475
Репутация:
3
|
|
[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
|
|
|

17.02.2022, 22:38
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Сообщение от Michael_Komas
Спасибо, рандомит - уже хорошо, не знаешь, как его в цикл загнать можно, чтобы раз n-ное количество раз генерировал?
Смотря все от задачи зависит. for пробуй. Я же не знаю, что ты конкретно хочешь сделать
|
|
|

18.02.2022, 11:34
|
|
Новичок
Регистрация: 29.09.2019
Сообщений: 15
С нами:
3486475
Репутация:
3
|
|
Сообщение от Dark_Knight
Смотря все от задачи зависит. for пробуй. Я же не знаю, что ты конкретно хочешь сделать
Окей, спасибо.
|
|
|
|
 |
Предыдущая тема
Следующая тема
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|