use unicode_segmentation::UnicodeSegmentation;
fn to_title_case(s: &str) -> String {
s.split_word_bounds()
.map(|word| {
let mut chars = word.chars();
match chars.next() {
None => String::new(),
Some(first) => first.to_uppercase().collect::<String>() + chars.as_str(),
}
})
.collect()
}
fn main() {
let s = "In the beginning there was nothing, which exploded.";
let title_case = to_title_case(s);
println!("{}", title_case);
}
/*
run:
In The Beginning There Was Nothing, Which Exploded.
*/