Menu
Coddy logo textTech

Arrays verändern

Teil des Abschnitts Fundamentals der Rust-Journey von Coddy — Lektion 58 von 75.

Zusätzlich zum Zugriff auf die Elemente eines Arrays können Sie diese auch ändern. Um ein bestimmtes Element zu ändern, benötigen Sie zuerst mut, um ein Array veränderbar zu machen, und dann können Sie ihm über seinen Index einen neuen Wert zuweisen.

Hier ist ein Beispiel:

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

Ausgabe:

apple, orange, cherry

banana wurde in ein orange geändert.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein Programm, das 3 Eingaben erhält:

  • Die erste Eingabe ist eine Zeichenfolge von Werten, die durch ein Komma getrennt sind (zum Beispiel 1,2,3,4,5), mit einer Länge von 5.
  • Die zweite Eingabe ist ein Index
  • Die dritte Eingabe ist ein neues Element

Der Starter-Code konvertiert die kommagetrennte Zeichenfolge bereits in ein veränderbares Array namens arr — Sie können direkt damit arbeiten, ohne Konvertierungscode schreiben zu müssen.

Das Programm gibt ein modifiziertes Array aus, indem es das Element an dem in der zweiten Eingabe gespeicherten Index durch den Wert aus der dritten Eingabe ersetzt.

Spickzettel

Um Array-Elemente zu ändern, muss das Array mit mut deklariert werden:

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

Dies ändert das Element an Index 1 von "banana" zu "orange".

Probier es selbst

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();
    
    // Schreiben Sie Ihren Code unten
    // Verwenden Sie arr, index und new_element, um die Herausforderung zu lösen    

    for i in 0..arr.len() {
        print!("{} ", arr[i]);
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Fundamentals