Eine Aufgabe entfernen
Teil des Abschnitts Logik & Kontrollfluss der Rust-Journey von Coddy. Lektion 18 von 66.
Aufgabe
EinfachDu erhältst drei Eingaben: zuerst eine durch Kommas getrennte Liste vorhandener Aufgaben; zweitens eine Aufgabennummer, die entfernt werden soll (1-basierte Indizierung); und drittens eine neue Aufgabe, die nach dem Entfernen hinzugefügt werden soll. Lies alle Eingaben ein, erstelle aus den Aufgaben einen Vektor, entferne die angegebene Aufgabe, füge die neue Aufgabe hinzu und gib die aktualisierte Aufgabenliste aus.
Anforderungen:
- Lies die erste Eingabe mit durch Kommas getrennten Aufgabenbeschreibungen ein (z. B.
Buy groceries,Call dentist,Finish homework) - Teile die Zeichenkette an den Kommas, um einzelne Aufgaben zu erhalten
- Erstelle einen veränderbaren Vektor und füge jede Aufgabe hinzu
- Lies die zweite Eingabe ein und wandle sie in eine Ganzzahl um (die zu entfernende Aufgabennummer unter Verwendung einer 1-basierten Indizierung)
- Wandle den 1-basierten Index in einen 0-basierten Index um und verwende
.remove(), um die Aufgabe an diesem Index zu entfernen - Lies die dritte Eingabe mit einer neuen hinzuzufügenden Aufgabe ein
- Verwende
.push(), um die neue Aufgabe zum Vektor hinzuzufügen - Gib die Gesamtzahl der Aufgaben im Format
Total tasks: Xaus - Gib jede Aufgabe in einer eigenen Zeile im Format
Task: [task description]aus
Eingabe:
- Erste Zeile: Durch Kommas getrennte Aufgabenbeschreibungen (z. B.
Buy groceries,Call dentist,Finish homework) - Zweite Zeile: Eine Ganzzahl, die die zu entfernende Aufgabennummer darstellt (1-basierte Indizierung)
- Dritte Zeile: Eine neue hinzuzufügende Aufgabe (z. B.
Study for exam)
Ausgabe:
- Erste Zeile:
Total tasks: X, wobei X die Gesamtzahl der Aufgaben nach dem Entfernen und Hinzufügen ist - Folgende Zeilen: Jede Aufgabe wird als
Task: [task description]ausgegeben
Probier es selbst
use std::io::{self, BufRead};
fn main() {
let stdin = io::stdin();
let mut lines = stdin.lock().lines();
// Lies die durch Kommas getrennten Aufgaben
let tasks_input = lines.next().unwrap().unwrap();
// Lies die Nummer der zu entfernenden Aufgabe (1-basierte Indizierung)
let task_to_remove = lines.next().unwrap().unwrap();
let task_number: usize = task_to_remove.trim().parse().unwrap();
// Lies die neue Aufgabe, die hinzugefügt werden soll
let new_task = lines.next().unwrap().unwrap();
// TODO: Schreibe deinen Code unten
// Teile tasks_input anhand der Kommas auf und erstelle einen veränderbaren Vektor
// Entferne die Aufgabe am angegebenen Index (konvertiere 1-basiert in 0-basiert)
// Füge die neue Aufgabe dem Vektor hinzu
// Gib die Ergebnisse aus
// Gib die Gesamtzahl der Aufgaben im Format aus: Total tasks: X
// Gib jede Aufgabe im Format aus: Task: [task description]
}Alle Lektionen in Logik & Kontrollfluss
1Fortgeschrittener Kontrollfluss
Der 'match'-AusdruckAbgleichen mehrerer WerteBereiche abgleichenDer 'if let'-AusdruckSchleifen als AusdrückeRückblick – Einfacher Befehls-Parser4Daten gruppieren mit Structs
Was ist ein Struct?Übersicht über StructsZugriff auf Struct-FelderVeränderbare StructsStructs als FunktionsparameterTupel-StructsZusammenfassung – Ein Buch-Struct erstellen2Einführung in Vektoren
Was ist ein Vektor?Einen Vektor erstellenElemente mit push hinzufügenZugriff auf Vektor-ElementeÜber einen Vektor iterierenVeränderliche IterationElemente entfernenZusammenfassung – Einfacher Score-Tracker5Schlüssel-Wert-Paare mit Hash Maps
Was ist eine Hash Map?Erstellen einer Hash MapEinfügen von Schlüssel-Wert-PaarenZugreifen auf WerteIterieren über eine Hash MapAktualisieren eines WertesEntfernen eines PaaresZusammenfassung – Wortzähler8Projekt: Einfaches Artikelinventar
Projekt-SetupEinen Artikel hinzufügenLagerbestand prüfenEinen Artikel verkaufenAlles zusammenfügen11Abschluss-Herausforderungen
Wiederholung - Einzigartige ElementeWiederholung - Benutzerprofil-ValidatorWiederholung - Noten-Zusammenfassung3Kommandozeilen-To-Do-Liste
Projekt-SetupEine Aufgabe hinzufügenAlle Aufgaben anzeigenEine Aufgabe entfernenFinaler CodeÜbe selbstständig: Online-Rust-Compiler