forked from root/public
lee
3 years ago
3 changed files with 15 additions and 68 deletions
@ -1,66 +0,0 @@ |
|||||||
## string literal |
|
||||||
|
|
||||||
### Instructions |
|
||||||
|
|
||||||
Create the following **functions**: |
|
||||||
|
|
||||||
- `is_empty`, which returns `true` if a string is empty |
|
||||||
- `is_ascii`, which returns `true` if all characters of a given string is in ASCII range |
|
||||||
- `contains`, which returns `true` if the string contains a given pattern |
|
||||||
- `split_at`, which divides a string in two returning a tuple |
|
||||||
- `find`, which returns the index if the first character of a given string which matches the pattern |
|
||||||
|
|
||||||
> This exercise will test the **heap allocation** of your function! |
|
||||||
> So try your best to allocate the minimum data on the heap! (hit: &str) |
|
||||||
|
|
||||||
### Notions |
|
||||||
|
|
||||||
- https://doc.rust-lang.org/1.22.0/book/first-edition/the-stack-and-the-heap.html |
|
||||||
- https://doc.rust-lang.org/rust-by-example/primitives/literals.html |
|
||||||
|
|
||||||
### Expected Functions |
|
||||||
|
|
||||||
```rust |
|
||||||
fn is_empty(v: &str) -> bool { |
|
||||||
} |
|
||||||
|
|
||||||
fn is_ascii(v: &str) -> bool { |
|
||||||
} |
|
||||||
|
|
||||||
fn contains(v: &str, pat: &str) -> bool { |
|
||||||
} |
|
||||||
|
|
||||||
fn split_at(v: &str, index: usize) -> (&str, &str) { |
|
||||||
} |
|
||||||
|
|
||||||
fn find(v: &str, pat: char) -> usize { |
|
||||||
} |
|
||||||
``` |
|
||||||
|
|
||||||
### Usage |
|
||||||
|
|
||||||
Here is a program to test your function |
|
||||||
|
|
||||||
```rust |
|
||||||
use string_literal::*; |
|
||||||
|
|
||||||
fn main() { |
|
||||||
println!("{}", is_empty("")); |
|
||||||
println!("{}", is_ascii("rust")); |
|
||||||
println!("{}", contains("rust", "ru")); |
|
||||||
println!("{:?}", split_at("rust", 2)); |
|
||||||
println!("{}", find("rust", 'u')); |
|
||||||
} |
|
||||||
``` |
|
||||||
|
|
||||||
And its output |
|
||||||
|
|
||||||
```console |
|
||||||
student@ubuntu:~/[[ROOT]]/test$ cargo run |
|
||||||
true |
|
||||||
true |
|
||||||
true |
|
||||||
("ru", "st") |
|
||||||
1 |
|
||||||
student@ubuntu:~/[[ROOT]]/test$ |
|
||||||
``` |
|
Loading…
Reference in new issue