|
|
|
## rot21
|
|
|
|
|
|
|
|
### Instructions
|
|
|
|
|
|
|
|
The purpose of this exercise is to create a `rot21` function that works like the ROT13 cipher.
|
|
|
|
|
|
|
|
This function will receive a `string` and will rotate each letter of that `string` 21 times to the right.
|
|
|
|
|
|
|
|
The function should only rotate letters. Punctuation, symbols and numbers should remain the unchanged.
|
|
|
|
|
|
|
|
### Expected functions
|
|
|
|
|
|
|
|
```rust
|
|
|
|
pub fn rot21(input: &str) -> String {
|
|
|
|
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
### Usage
|
|
|
|
|
|
|
|
Here is a program to test your function.
|
|
|
|
|
|
|
|
```rust
|
|
|
|
use rot21::rot21;
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
println!("The letter \"a\" becomes: {}", rot21("a"));
|
|
|
|
println!("The letter \"m\" becomes: {}", rot21("m"));
|
|
|
|
println!("The word \"MISS\" becomes: {}", rot21("MISS"));
|
|
|
|
println!("Your cypher wil be: {}", rot21("Testing numbers 1 2 3"));
|
|
|
|
println!("Your cypher wil be: {}", rot21("rot21 works!"));
|
|
|
|
}
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
And its output:
|
|
|
|
|
|
|
|
```console
|
|
|
|
$ cargo run
|
|
|
|
The letter "a" becomes: v
|
|
|
|
The letter "m" becomes: h
|
|
|
|
The word "MISS" becomes: HDNN
|
|
|
|
Your cypher wil be: Oznodib iphwzmn 1 2 3
|
|
|
|
Your cypher wil be: mjo21 rjmfn!
|
|
|
|
$
|
|
|
|
```
|