From 468e90ac55d087e8d3f4380c32f9e9744f1cc0dd Mon Sep 17 00:00:00 2001 From: clonbg Date: Thu, 15 Jun 2023 10:45:23 +0200 Subject: [PATCH] reto03 finish --- ejercicios/reto03/src/main.rs | 42 +++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/ejercicios/reto03/src/main.rs b/ejercicios/reto03/src/main.rs index d096d79..c6b8cde 100644 --- a/ejercicios/reto03/src/main.rs +++ b/ejercicios/reto03/src/main.rs @@ -12,20 +12,48 @@ use rand::Rng; fn main() { // configurar: let veces = 13; - let letras_mayusculas = true; + let mayusculas = true; let numeros = true; let simbolos = true; let mut caracteres = String::from_utf8((b'a'..=b'z').collect()).unwrap(); - if letras_mayusculas { - let vector_mayusculas = String::from_utf8((b'A'..=b'Z').collect()).unwrap(); - caracteres += vector_mayusculas.to_string().as_str(); + if mayusculas { + let string_mayusculas = String::from_utf8((b'A'..=b'Z').collect()).unwrap(); + caracteres += string_mayusculas.to_string().as_str(); } + if numeros { + let string_numeros = String::from_utf8((b'0'..=b'9').collect()).unwrap(); + caracteres += string_numeros.to_string().as_str(); + } + if simbolos { + for num in 33..48 { + let u8 = num as u8; + let caracter = u8 as char; + caracteres += caracter.to_string().as_str(); + } + for num in 58..65 { + let u8 = num as u8; + let caracter = u8 as char; + caracteres += caracter.to_string().as_str(); + } + for num in 91..97 { + let u8 = num as u8; + let caracter = u8 as char; + caracteres += caracter.to_string().as_str(); + } + for num in 123..127 { + let u8 = num as u8; + let caracter = u8 as char; + caracteres += caracter.to_string().as_str(); + } + } + + println!("Caracteres: {}", caracteres); let mut texto: String = String::new(); for _ in 0..veces { - let num: u8 = rand::thread_rng().gen_range(33..127); - let caracter = num as char; - texto += &caracter.to_string(); + let num = rand::thread_rng().gen_range(0..caracteres.len()); + let caracter = caracteres.chars().nth(num).unwrap(); + texto += caracter.to_string().as_str(); } println!("{}", texto.to_string()); }