strings and modules

This commit is contained in:
2026-01-25 15:49:17 +00:00
parent 26f785a0ff
commit 82f597d052
5 changed files with 20 additions and 18 deletions

View File

@@ -1,13 +1,15 @@
fn trim_me(input: &str) -> &str { fn trim_me(input: &str) -> &str {
// TODO: Remove whitespace from both ends of a string. input.trim()
} }
fn compose_me(input: &str) -> String { fn compose_me(input: &str) -> String {
// TODO: Add " world!" to the string! There are multiple ways to do this. let mut tmp = input.to_string();
tmp.push_str(" world!");
tmp
} }
fn replace_me(input: &str) -> String { fn replace_me(input: &str) -> String {
// TODO: Replace "cars" in the string with "balloons". input.replace("cars", "balloons")
} }
fn main() { fn main() {

View File

@@ -13,25 +13,26 @@ fn string(arg: String) {
// Your task is to replace `placeholder(…)` with either `string_slice(…)` // Your task is to replace `placeholder(…)` with either `string_slice(…)`
// or `string(…)` depending on what you think each value is. // or `string(…)` depending on what you think each value is.
fn main() { fn main() {
placeholder("blue"); string_slice("blue");
placeholder("red".to_string()); string("red".to_string());
placeholder(String::from("hi")); string(String::from("hi"));
placeholder("rust is fun!".to_owned()); string("rust is fun!".to_owned());
placeholder("nice weather".into()); #[allow(clippy::useless_conversion)]
string_slice("nice weather".into());
placeholder(format!("Interpolation {}", "Station")); string(format!("Interpolation {}", "Station"));
// WARNING: This is byte indexing, not character indexing. // WARNING: This is byte indexing, not character indexing.
// Character indexing can be done using `s.chars().nth(INDEX)`. // Character indexing can be done using `s.chars().nth(INDEX)`.
placeholder(&String::from("abc")[0..1]); string_slice(&String::from("abc")[0..1]);
placeholder(" hello there ".trim()); string_slice(" hello there ".trim());
placeholder("Happy Monday!".replace("Mon", "Tues")); string("Happy Monday!".replace("Mon", "Tues"));
placeholder("mY sHiFt KeY iS sTiCkY".to_lowercase()); string("mY sHiFt KeY iS sTiCkY".to_lowercase());
} }

View File

@@ -5,7 +5,7 @@ mod sausage_factory {
String::from("Ginger") String::from("Ginger")
} }
fn make_sausage() { pub fn make_sausage() {
get_secret_recipe(); get_secret_recipe();
println!("sausage!"); println!("sausage!");
} }

View File

@@ -2,9 +2,8 @@
// the `use` and `as` keywords. // the `use` and `as` keywords.
mod delicious_snacks { mod delicious_snacks {
// TODO: Add the following two `use` statements after fixing them. pub use self::fruits::PEAR as fruit;
// use self::fruits::PEAR as ???; pub use self::veggies::CUCUMBER as veggie;
// use self::veggies::CUCUMBER as ???;
mod fruits { mod fruits {
pub const PEAR: &str = "Pear"; pub const PEAR: &str = "Pear";

View File

@@ -4,7 +4,7 @@
// TODO: Bring `SystemTime` and `UNIX_EPOCH` from the `std::time` module into // TODO: Bring `SystemTime` and `UNIX_EPOCH` from the `std::time` module into
// your scope. Bonus style points if you can do it with one line! // your scope. Bonus style points if you can do it with one line!
// use ???; // use ???;
use std::time::{SystemTime, UNIX_EPOCH};
fn main() { fn main() {
match SystemTime::now().duration_since(UNIX_EPOCH) { match SystemTime::now().duration_since(UNIX_EPOCH) {
Ok(n) => println!("1970-01-01 00:00:00 UTC was {} seconds ago!", n.as_secs()), Ok(n) => println!("1970-01-01 00:00:00 UTC was {} seconds ago!", n.as_secs()),