Modyfikowanie tablic
Część sekcji Podstawy ścieżki Rust w Coddy. Lekcja 58 z 75.
Oprócz uzyskiwania dostępu do elementów tablicy możesz je również modyfikować. Aby zmodyfikować konkretny element, najpierw potrzebujesz mut, aby umożliwić modyfikowanie tablicy, a następnie możesz przypisać mu nową wartość, używając jego indeksu.
Oto przykład:
let mut my_array = ["apple", "banana", "cherry"];
my_array[1] = "orange";
println!("{}, {}, {}", my_array[0], my_array[1], my_array[2]);Wynik:
apple, orange, cherrybanana zmieniono na orange.
Wyzwanie
ŁatwyUtwórz program, który przyjmuje 3 dane wejściowe:
- Pierwsza dana wejściowa to ciąg wartości oddzielonych przecinkami (na przykład
1,2,3,4,5) o długości 5. - Druga dana wejściowa to indeks
- Trzecia dana wejściowa to nowy element
Kod początkowy już konwertuje ciąg wartości oddzielonych przecinkami na modyfikowalną tablicę o nazwie arr. Możesz pracować bezpośrednio na niej, nie pisząc żadnego kodu konwertującego.
Program wypisze zmodyfikowaną tablicę, zmieniając element o indeksie zapisanym w drugiej danej wejściowej na wartość z trzeciej danej wejściowej.
Spróbuj swoich sił
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();
// Napisz swój kod poniżej
// Użyj arr, index i new_element, aby rozwiązać zadanie
for i in 0..arr.len() {
print!("{} ", arr[i]);
}
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory, część 1
Operatory arytmetyczneOperator moduloSkrócone operacje arytmetyczneOperatory porównaniaPorównywanie ciągów znaków7Podstawowe wejście i wyjście
Wyświetlanie w konsoliOdczytywanie danych od użytkownikaPowtórka – do 120Powtórka – prawda czy fałsz5Operatory, część 2
Operatory logiczne, część 1Operatory logiczne, część 2Powtórka — prosta logikaOperatory logiczne, część 311Funkcje
Deklarowanie funkcjiParametry i argumentyWartości zwracaneWiele wartości zwracanychPowtórka – funkcja SigmaPowtórka – funkcja walidująca14Iterowanie po tablicach
Przewodnik po zakresachUlepszona pętla forPożyczanie w pętliTypowe operacje na tablicach3Zmienne – część 2
Deklarowanie typuKonwencje nazewnictwaWnioskowanie o typiePodsumowanie – inicjalizacja zmiennychRzutowanie typów9Pętle
Pętla for dla sekwencjiPętla whileInstrukcja breakInstrukcja continuePętle zagnieżdżoneEtykiety pętliPętla nieskończonaPodsumowanie — dynamiczne dane wejściowe12Podstawy tablic
Deklarowanie tablicTablica jako parametrDostęp do elementówModyfikowanie tablicPodsumowanie — czytelny wydruk tablicy15Operacje na ciągach znaków
Metody ciągów znakówMakro format!Konwersja ciągów znakówPowtórka — formatowaniePoćwicz samodzielnie: Kompilator Rust online