Index: doc/theses/mike_brooks_MMath/word.cc
===================================================================
--- doc/theses/mike_brooks_MMath/word.cc	(revision 38e17b075cc18efa0ede32a63ca235bf8f4b3072)
+++ doc/theses/mike_brooks_MMath/word.cc	(revision 38e17b075cc18efa0ede32a63ca235bf8f4b3072)
@@ -0,0 +1,23 @@
+#include <string>
+#include <iostream>
+using namespace std;
+int main() {
+	string line, alpha = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+	size_t i;
+
+	for ( ; getline( cin, line ); ) {
+		for ( ;; ) {									// scan words off line
+			string::size_type posn = line.find_first_of( alpha );// find position of 1st alphabetic character
+		  if ( posn == string::npos ) break;			// any characters left ?
+			line = line.substr( posn );					// remove leading whitespace
+			posn = line.find_first_not_of( alpha );		// find position of 1st non-alphabetic character
+			if ( posn != string::npos ) {
+				cout << line.substr( 0, posn ) << endl;	// extract word from start of line
+				line = line.substr( posn );				// delete word from line
+			} else {
+				cout << line << endl;					// extract word from start of line
+				line = "";
+			}
+		} // for
+	} // for
+}
Index: doc/theses/mike_brooks_MMath/word.cfa
===================================================================
--- doc/theses/mike_brooks_MMath/word.cfa	(revision 38e17b075cc18efa0ede32a63ca235bf8f4b3072)
+++ doc/theses/mike_brooks_MMath/word.cfa	(revision 38e17b075cc18efa0ede32a63ca235bf8f4b3072)
@@ -0,0 +1,22 @@
+#include <string.hfa>
+#include <fstream.hfa>
+
+int main() {
+	string line;
+	charclass alpha{ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" };
+	size_t i;
+
+	try {
+		for ( ;; ) {
+			sin | getline( line );
+			for ( ;; ) {									// scan words off line
+				size_t posn = exclude( line, alpha );		// find position of 1st alphabetic character
+			  if ( posn == len( line ) ) break;				// any characters left ?
+				line = line( posn );						// remove leading whitespace
+				posn = include( line, alpha );				// find position of 1st non-alphabetic character
+				sout | line( 0, posn );						// extract word from start of line
+				line = line( posn );						// delete word from line
+			} // for
+		} // for
+	} catch( end_of_file * ) {}
+}
