Adding a Task
Part of the Logic & Flow section of Coddy's Rust journey — lesson 16 of 66.
Challenge
EasyYou will receive two inputs: first, a comma-separated list of existing tasks, and second, a new task to add. Read both inputs, create a vector from the existing tasks, add the new task to the vector, and print the updated task list.
Requirements:
- Read the first input containing comma-separated task descriptions (e.g.,
Buy groceries,Call dentist) - Split the string by commas to get individual tasks
- Create a mutable vector and add each existing task to it
- Read the second input containing the new task to add
- Use
.push()to add the new task to the vector - Print the total number of tasks in the format:
Total tasks: X - Print each task on a separate line in the format:
Task: [task description]
Input:
- First line: Comma-separated task descriptions (e.g.,
Buy groceries,Call dentist) - Second line: A new task to add (e.g.,
Finish homework)
Output:
- First line:
Total tasks: Xwhere X is the total number of tasks after adding the new one - Following lines: Each task printed as
Task: [task description]
Try it yourself
use std::io;
fn main() {
// Read the first input (comma-separated tasks)
let mut existing_tasks = String::new();
io::stdin().read_line(&mut existing_tasks).expect("Failed to read line");
let existing_tasks = existing_tasks.trim();
// Read the second input (new task to add)
let mut new_task = String::new();
io::stdin().read_line(&mut new_task).expect("Failed to read line");
let new_task = new_task.trim();
// TODO: Write your code below
// Split existing_tasks by commas and create a mutable vector
// Add the new task to the vector
// Print the total number of tasks
// Print each task in the required format
}All lessons in Logic & Flow
1Advanced Control Flow
The 'match' ExpressionMatching Multiple ValuesMatching RangesThe 'if let' ExpressionLoops as ExpressionsRecap - Simple Command Parser4Grouping Data with Structs
What is a Struct?Structs OverviewAccessing Struct FieldsMutable StructsStructs as Function ParametersTuple StructsRecap - Create a Book Struct7Handling Errors with 'Result'
What is a 'Result'?Using 'match' with 'Result'is_ok() and is_err()Shortcuts: unwrap and expectThe Question Mark Operator '?'Parsing Strings to NumbersRecap - Safe Division Function10Closures & Anonymous Functions
What is a Closure?Defining a Simple ClosureClosures with ParametersCapturing the EnvironmentRecap - Simple Adder Closure2Introduction to Vectors
What is a Vector?Creating a VectorAdding Elements with pushAccessing Vector ElementsIterating Over a VectorMutable IterationRemoving ElementsRecap - Basic Score Tracker5Key-Value Pairs with Hash Maps
What is a Hash Map?Creating a Hash MapInserting Key-Value PairsAccessing ValuesIterating Over a Hash MapUpdating a ValueRemoving a PairRecap - Word Counter8Project: Simple Item Inventory
Project SetupAdding an ItemChecking StockSelling an ItemPutting it all together