From 0cef25cad181c03eb9e9e4b10f697aca1ccb74a5 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Thu, 19 Jul 2018 21:54:35 +0300 Subject: Add: write out all words in input --- .gitignore | 3 +++ Cargo.toml | 6 ++++++ src/main.rs | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.toml create mode 100644 src/main.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..70e3cae --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ + +/target +**/*.rs.bk diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..393abb5 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "wordfreq" +version = "0.1.0" +authors = ["Lars Wirzenius "] + +[dependencies] diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..b0d0d03 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,41 @@ +use std::env; +use std::fs::File; +use std::io; +use std::io::BufRead; + + + +fn main() -> io::Result<()> { + for filename in env::args().skip(1) { + let mut f = File::open(&filename)?; + let mut reader = io::BufReader::new(f); + print_words(&mut reader)?; + } + Ok(()) +} + + +fn print_words(reader: &mut io::BufReader) -> io::Result<()> { + for line in reader.lines() { + let line = line?; + print_words_in_line(&line); + } + Ok(()) +} + + +fn print_words_in_line(line: &str) { + let mut was_in_word = false; + for c in line.chars() { + let letter = c.is_alphabetic(); + if letter { + was_in_word = true; + print!("{}", c); + } else { + if was_in_word { + println!(""); + } + was_in_word = false; + } + } +} -- cgit v1.2.1