Menu
Coddy logo textTech

Изменение массивов

Часть раздела Fundamentals путешествия по Rust на Coddy — урок 58 из 75.

Помимо доступа к элементам массива, вы также можете их изменять. Чтобы изменить конкретный элемент, сначала вам нужно mut, чтобы сделать массив изменяемым, а затем вы сможете присвоить ему новое значение, используя его индекс.

Вот пример:

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

Вывод:

apple, orange, cherry

banana был изменен на orange.

challenge icon

Задание

Легко

Создайте программу, которая получает 3 входных значения:

  • Первое входное значение — это строка значений, разделенных запятой (например, 1,2,3,4,5), длиной 5.
  • Второе входное значение — это индекс
  • Третье входное значение — это новый элемент

Стартовый код уже преобразует строку с разделителями-запятыми в изменяемый массив с именем arr — вы можете работать с ним напрямую, не написав никакого кода для преобразования.

Программа выведет измененный массив, заменив элемент по индексу, полученному во втором входном значении, на значение из третьего входного значения.

Шпаргалка

Чтобы изменить элементы массива, массив должен быть объявлен с помощью mut:

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

Это изменяет элемент по индексу 1 с "banana" на "orange".

Попробуйте сами

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();
    
    // Напишите свой код ниже
    // Используйте arr, index и new_element для решения задачи    

    for i in 0..arr.len() {
        print!("{} ", arr[i]);
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Fundamentals