Menu
Coddy logo textTech

Supprimer une tâche

Fait partie de la section Logic & Flow du Journey Rust de Coddy — leçon 18 sur 66.

challenge icon

Défi

Facile

Vous 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: X où 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