2 pub fn first_word(s: &str) -> &str {
3 for (i, &item) in s.as_bytes().iter().enumerate() {
12 pub fn second_word(s: &str) -> Option<&str> {
13 for (i, &item) in s.as_bytes().iter().enumerate() {
15 return Some(first_word(&s[(i + 1)..]));
23 use word_utils::{first_word, second_word};
26 let s = String::from("Hello world");
27 println!("first word: '{}'", first_word(&s));
28 println!("second word: '{}'", second_word(&s).unwrap());
30 let s2 = "hello dude blah";
31 println!("second word of single: '{}'", second_word(s2).unwrap_or("(none)"));
33 match second_word(s2) {
34 Some(w) => println!("match: second word of '{}' exists: {}", s2, w),
35 None => println!("match: second word of '{}' does not exist", s2),