mirror of https://github.com/01-edu/public.git
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