Supprimer une tâche
Fait partie de la section Logic & Flow du Journey Rust de Coddy — leçon 18 sur 66.
Défi
FacileVous recevrez trois entrées : premièrement, une liste de tâches existantes séparées par des virgules ; deuxièmement, un numéro de tâche à supprimer (indexation commençant à 1) ; et troisièmement, une nouvelle tâche à ajouter après la suppression. Lisez toutes les entrées, créez un vecteur à partir des tâches, supprimez la tâche spécifiée, ajoutez la nouvelle tâche et affichez la liste des tâches mise à jour.
Exigences :
- Lisez la première entrée contenant les descriptions des tâches séparées par des virgules (par exemple,
Buy groceries,Call dentist,Finish homework) - Divisez la chaîne par les virgules pour obtenir les tâches individuelles
- Créez un vecteur mutable et ajoutez-y chaque tâche
- Lisez la deuxième entrée et convertissez-la en un entier (le numéro de la tâche à supprimer, en utilisant une indexation commençant à 1)
- Convertissez l'index commençant à 1 en un index commençant à 0 et utilisez
.remove()pour supprimer la tâche à cet index - Lisez la troisième entrée contenant une nouvelle tâche à ajouter
- Utilisez
.push()pour ajouter la nouvelle tâche au vecteur - Affichez le nombre total de tâches au format :
Total tasks: X - Affichez chaque tâche sur une ligne séparée au format :
Task: [task description]
Entrée :
- Première ligne : Descriptions des tâches séparées par des virgules (par exemple,
Buy groceries,Call dentist,Finish homework) - Deuxième ligne : Un entier représentant le numéro de la tâche à supprimer (indexation commençant à 1)
- Troisième ligne : Une nouvelle tâche à ajouter (par exemple,
Study for exam)
Sortie :
- Première ligne :
Total tasks: Xoù X est le nombre total de tâches après la suppression et l'ajout - Lignes suivantes : Chaque tâche affichée comme
Task: [task description]
Essayez vous-même
use std::io::{self, BufRead};
fn main() {
let stdin = io::stdin();
let mut lines = stdin.lock().lines();
// Lire les tâches séparées par des virgules
let tasks_input = lines.next().unwrap().unwrap();
// Lire le numéro de la tâche à supprimer (indexation commençant à 1)
let task_to_remove = lines.next().unwrap().unwrap();
let task_number: usize = task_to_remove.trim().parse().unwrap();
// Lire la nouvelle tâche à ajouter
let new_task = lines.next().unwrap().unwrap();
// TODO: Écrivez votre code ci-dessous
// Diviser tasks_input par les virgules et créer un vecteur mutable
// Supprimer la tâche à l'index spécifié (convertir de la base 1 à la base 0)
// Ajouter la nouvelle tâche au vecteur
// Afficher les résultats
// Afficher le total des tâches au format : Total tasks: X
// Afficher chaque tâche au format : Task: [task description]
}Toutes les leçons de Logic & Flow
1Structures de contrôle avancées
L'expression 'match'Filtrage de plusieurs valeursFiltrage d'intervallesL'expression 'if let'Les boucles en tant qu'expressionsRécapitulatif - Analyseur de commandes simple4Regrouper des données avec les structures
Qu'est-ce qu'une structure ?Aperçu des structuresAccéder aux champs d'une structureStructures mutablesLes structures comme paramètres de fonctionStructures tupleRécapitulatif - Créer une structure Book2Introduction aux vecteurs
Qu'est-ce qu'un vecteur ?Créer un vecteurAjouter des éléments avec pushAccéder aux éléments d'un vecteurItérer sur un vecteurItération mutableSupprimer des élémentsRécapitulatif - Suivi de score basique5Paires clé-valeur avec les Hash Maps
Qu'est-ce qu'une Hash Map ?Créer une Hash MapInsérer des paires clé-valeurAccéder aux valeursParcourir une Hash MapMettre à jour une valeurSupprimer une paireRécapitulatif - Compteur de mots8Projet : Inventaire d'articles simple
Configuration du projetAjouter un articleVérifier le stockVendre un articleAssembler le tout3Liste de tâches en ligne de commande
Configuration du projetAjouter une tâcheAfficher toutes les tâchesSupprimer une tâcheCode final