Menu
Coddy logo textTech

Modificación de Arrays

Parte de la sección Fundamentals del Journey de Rust de Coddy — lección 58 de 75.

Además de acceder a los elementos de un arreglo, también puedes modificarlos. Para modificar un elemento específico, primero necesitas mut para hacer que un arreglo sea modificable, y luego puedes asignarle un nuevo valor utilizando su índice.

Aquí tienes un ejemplo:

let mut my_array = ["apple", "banana", "cherry"];
my_array[1] = "orange";
println!("{}, {}, {}", my_array[0], my_array[1], my_array[2]);

Salida:

apple, orange, cherry

banana fue cambiado a un orange.

challenge icon

Desafío

Fácil

Crea un programa que reciba 3 entradas:

  • La primera entrada es una cadena de valores separados por una coma (por ejemplo 1,2,3,4,5) de longitud 5.
  • La segunda entrada es un índice
  • La tercera entrada es un nuevo elemento

El código inicial ya convierte la cadena separada por comas en un array mutable llamado arr — puedes trabajar directamente con él sin escribir ningún código de conversión.

El programa imprimirá un array modificado cambiando el elemento en el índice almacenado en la segunda entrada con el valor de la tercera entrada.

Hoja de referencia

Para modificar los elementos de un array, el array debe declararse con mut:

let mut my_array = ["apple", "banana", "cherry"];
my_array[1] = "orange";
println!("{}, {}, {}", my_array[0], my_array[1], my_array[2]);

Esto cambia el elemento en el índice 1 de "banana" a "orange".

Pruébalo tú mismo

use std::io;
use std::convert::TryInto;

fn main() {
    let mut input_str_arr = String::new();
    let mut input_index = String::new();
    let mut new_element = String::new();
    io::stdin().read_line(&mut input_str_arr).unwrap();
    io::stdin().read_line(&mut input_index).unwrap();
    io::stdin().read_line(&mut new_element).unwrap();

    let new_element = new_element.trim().to_string();
    let index: usize = input_index.trim().parse().unwrap();
    let mut arr: [String; 5] = input_str_arr.split(',').map(String::from).collect::<Vec<String>>().try_into().unwrap();
    
    // Escribe tu código a continuación
    // Usa arr, index y new_element para resolver el desafío    

    for i in 0..arr.len() {
        print!("{} ", arr[i]);
    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentals