Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::io;
- fn main() {
- let mut untranslated = String::new();
- println!("What would you like translated?");
- io::stdin()
- .read_line(&mut untranslated)
- .expect("Failed to read line");
- let vec: Vec<char> = untranslated.as_str().chars().collect();
- let trimmed: String = vec[..vec.len() - 1].iter().collect();
- let translated = to_pig_latin(trimmed);
- println!("Translated:\n{}", translated);
- }
- fn to_pig_latin(original: String) -> String {
- let words = original.split(" ");
- let mut res = String::from(" ");
- for word in words {
- res.push_str(word_to_pig_latin(String::from(word)).as_str());
- res.push(' ');
- }
- res
- }
- fn word_to_pig_latin(word: String) -> String {
- let chars_vec: Vec<char> = word.as_str().chars().collect();
- if is_vowel(&chars_vec[0]) {
- format!("{}-hay", word)
- } else {
- let first = chars_vec[0];
- let base: String = chars_vec[1..chars_vec.len()].iter().collect();
- format!("{}-{}ay", base.as_str(), first)
- }
- }
- fn is_vowel(c: &char) -> bool {
- let vowels = ['a', 'e', 'i', 'o', 'u', 'y'].iter();
- let mut res: bool = false;
- for letter in vowels {
- if c == letter {
- res = true
- }
- }
- res
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement