Advertisement
Guest User

Untitled

a guest
May 20th, 2019
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. use std::io;
  2.  
  3. fn main() {
  4. let mut untranslated = String::new();
  5.  
  6. println!("What would you like translated?");
  7.  
  8. io::stdin()
  9. .read_line(&mut untranslated)
  10. .expect("Failed to read line");
  11.  
  12. let vec: Vec<char> = untranslated.as_str().chars().collect();
  13. let trimmed: String = vec[..vec.len() - 1].iter().collect();
  14. let translated = to_pig_latin(trimmed);
  15.  
  16. println!("Translated:\n{}", translated);
  17. }
  18.  
  19. fn to_pig_latin(original: String) -> String {
  20. let words = original.split(" ");
  21. let mut res = String::from(" ");
  22.  
  23. for word in words {
  24. res.push_str(word_to_pig_latin(String::from(word)).as_str());
  25. res.push(' ');
  26. }
  27.  
  28. res
  29. }
  30.  
  31. fn word_to_pig_latin(word: String) -> String {
  32. let chars_vec: Vec<char> = word.as_str().chars().collect();
  33.  
  34. if is_vowel(&chars_vec[0]) {
  35. format!("{}-hay", word)
  36. } else {
  37. let first = chars_vec[0];
  38. let base: String = chars_vec[1..chars_vec.len()].iter().collect();
  39.  
  40. format!("{}-{}ay", base.as_str(), first)
  41. }
  42. }
  43.  
  44. fn is_vowel(c: &char) -> bool {
  45. let vowels = ['a', 'e', 'i', 'o', 'u', 'y'].iter();
  46. let mut res: bool = false;
  47.  
  48. for letter in vowels {
  49. if c == letter {
  50. res = true
  51. }
  52. }
  53.  
  54. res
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement