diff options
Diffstat (limited to 'rust-book/piglatin')
| -rwxr-xr-x | rust-book/piglatin/Cargo.lock | 4 | ||||
| -rwxr-xr-x | rust-book/piglatin/Cargo.toml | 7 | ||||
| -rwxr-xr-x | rust-book/piglatin/src/main.rs | 38 | 
3 files changed, 49 insertions, 0 deletions
| diff --git a/rust-book/piglatin/Cargo.lock b/rust-book/piglatin/Cargo.lock new file mode 100755 index 0000000..67b9b02 --- /dev/null +++ b/rust-book/piglatin/Cargo.lock @@ -0,0 +1,4 @@ +[[package]] +name = "piglatin" +version = "0.1.0" + diff --git a/rust-book/piglatin/Cargo.toml b/rust-book/piglatin/Cargo.toml new file mode 100755 index 0000000..7d62333 --- /dev/null +++ b/rust-book/piglatin/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "piglatin" +version = "0.1.0" +authors = ["Adam Carpenter <adam.carpenter@adp.com>"] +edition = "2018" + +[dependencies] diff --git a/rust-book/piglatin/src/main.rs b/rust-book/piglatin/src/main.rs new file mode 100755 index 0000000..c5d9813 --- /dev/null +++ b/rust-book/piglatin/src/main.rs @@ -0,0 +1,38 @@ +use std::env; + +fn print_usage() { +    eprintln!("error: usage: piglatin [word] [words]..."); +} + +fn main() { + +    for mut word in env::args().skip(1) { +        // grab first letter +        let first = match word.get(0..1) { +            Some(s) => s, +            None => { +                print_usage(); +                return; +            } +        }; + +        // check if first letter is vowel or consonant +        // if vowel, append -hay and print +        // if consonant, appent first letter and -ay and print +        match first { +            "a" | "e" | "i" | "o" | "u" |  +            "A" | "E" | "I" | "O" | "U" => { +                print!("{}-hay ", word); +            }, +            _ => { +                let rest = match word.get(1..) { +                    Some(s) => s, +                    None => "", +                }; +                print!("{}-{}ay ", rest, first); +            }, +        } +    } + +    println!(); +} |