Menu
Coddy logo textTech

שינוי מערכים

חלק מהיחידה יסודות במסלול ה-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. תוכלו לעבוד איתו ישירות בלי לכתוב קוד המרה.

התוכנית תדפיס מערך ששונה על ידי החלפת האיבר באינדקס שנשמר בקלט השני בערך מהקלט השלישי.

נסו בעצמכם

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בחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר Rust אונליין