Menu
Coddy logo textTech

Modification de tableaux

Fait partie de la section Fundamentals du Journey Rust de Coddy — leçon 58 sur 75.

En plus d'accéder aux éléments d'un tableau, vous pouvez également les modifier. Pour modifier un élément spécifique, vous devez d'abord utiliser mut pour rendre un tableau modifiable, puis vous pouvez lui assigner une nouvelle valeur en utilisant son index.

Voici un exemple :

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

Sortie :

apple, orange, cherry

banana a été changé en orange.

challenge icon

Défi

Facile

Créez un programme qui reçoit 3 entrées :

  • La première entrée est une chaîne de valeurs séparées par une virgule (par exemple 1,2,3,4,5) de longueur 5.
  • La deuxième entrée est un index
  • La troisième entrée est un nouvel élément

Le code de départ convertit déjà la chaîne séparée par des virgules en un tableau mutable appelé arr — vous pouvez travailler directement avec celui-ci sans écrire de code de conversion.

Le programme affichera un tableau modifié en remplaçant l'élément à l'index stocké dans la deuxième entrée par la valeur de la troisième entrée.

Aide-mémoire

Pour modifier les éléments d'un tableau, le tableau doit être déclaré avec mut :

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

Cela change l'élément à l'index 1 de "banana" à "orange".

Essayez vous-même

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();
    
    // Écrivez votre code ci-dessous
    // Utilisez arr, index et new_element pour résoudre le défi    

    for i in 0..arr.len() {
        print!("{} ", arr[i]);
    }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fundamentals