mirror of
https://github.com/rust-lang/rustlings.git
synced 2024-12-26 23:36:30 +00:00
feat(strings): add strings3
This commit is contained in:
parent
f5e4c16eed
commit
c1ed6b10fe
2 changed files with 52 additions and 0 deletions
41
exercises/strings/strings3.rs
Normal file
41
exercises/strings/strings3.rs
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
// strings3.rs
|
||||||
|
// Execute `rustlings hint strings3` or use the `hint` watch subcommand for a hint.
|
||||||
|
|
||||||
|
fn trim_me(input: &str) -> String {
|
||||||
|
// TODO: Remove whitespace from the end of a string!
|
||||||
|
???
|
||||||
|
}
|
||||||
|
|
||||||
|
fn compose_me(input: &str) -> String {
|
||||||
|
// TODO: Add " world!" to the string! There's multiple ways to do this!
|
||||||
|
???
|
||||||
|
}
|
||||||
|
|
||||||
|
fn replace_me(input: &str) -> String {
|
||||||
|
// TODO: Replace "cars" in the string with "balloons"!
|
||||||
|
???
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn trim_a_string() {
|
||||||
|
assert_eq!(trim_me("Hello! "), "Hello!");
|
||||||
|
assert_eq!(trim_me(" What's up!"), "What's up!");
|
||||||
|
assert_eq!(trim_me(" Hola! "), "Hola!");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn compose_a_string() {
|
||||||
|
assert_eq!(compose_me("Hello"), "Hello world!");
|
||||||
|
assert_eq!(compose_me("Goodbye"), "Goodbye world!");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn replace_a_string() {
|
||||||
|
assert_eq!(replace_me("I think cars are cool"), "I think balloons are cool");
|
||||||
|
assert_eq!(replace_me("I love to look at cars"), "I love to look at balloons");
|
||||||
|
}
|
||||||
|
}
|
11
info.toml
11
info.toml
|
@ -443,6 +443,17 @@ Yes, it would be really easy to fix this by just changing the value bound to `wo
|
||||||
string slice instead of a `String`, wouldn't it?? There is a way to add one character to line
|
string slice instead of a `String`, wouldn't it?? There is a way to add one character to line
|
||||||
9, though, that will coerce the `String` into a string slice."""
|
9, though, that will coerce the `String` into a string slice."""
|
||||||
|
|
||||||
|
[[exercises]]
|
||||||
|
name = "strings3"
|
||||||
|
path = "exercises/strings/strings3.rs"
|
||||||
|
mode = "test"
|
||||||
|
hint = """
|
||||||
|
There's tons of useful standard library functions for strings. Let's try and use some of
|
||||||
|
them!
|
||||||
|
|
||||||
|
For the compose_me method: You can either use the `format!` macro, or convert the string
|
||||||
|
slice into an owned string, which you can then freely extend."""
|
||||||
|
|
||||||
# MODULES
|
# MODULES
|
||||||
|
|
||||||
[[exercises]]
|
[[exercises]]
|
||||||
|
|
Loading…
Reference in a new issue