diff options
author | Lars Wirzenius <liw@liw.fi> | 2018-07-19 21:54:35 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2018-07-19 21:54:35 +0300 |
commit | 0cef25cad181c03eb9e9e4b10f697aca1ccb74a5 (patch) | |
tree | 165b13278d209965fedd49916de05f4e1d93ac18 | |
download | wordfreq-0cef25cad181c03eb9e9e4b10f697aca1ccb74a5.tar.gz |
Add: write out all words in input
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | Cargo.toml | 6 | ||||
-rw-r--r-- | src/main.rs | 41 |
3 files changed, 50 insertions, 0 deletions
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 <liw@liw.fi>"] + +[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<File>) -> 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; + } + } +} |