#include <iostream>
#include <algorithm>
#include <string>
#include <cctype>
#include <sstream>
void readAlpha( const std:: string ) ;
int main( ) {
std:: string str =
"Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n "
"Cras blandit risus eget nunc finibus, eget condimentum lectus \n "
"commodo. Nulla a eleifend mauris. Sed ac vehicula lacus. \n "
"Fusce lacus eros, porttitor at massa vel, lacinia pharetra purus. \n "
"Curabitur vitae massa ac tortor rutrum rutrum eu sit amet magna. \n "
"Curabitur et est vitae odio luctus semper vitae vel nisi." ;
readAlpha( str) ;
return 0 ;
}
void readAlpha( const std:: string strToRead)
{
std:: istringstream iss( strToRead) ;
std:: string str;
for ( std:: string :: iterator pos, prev; std:: getline ( iss, str) ; )
{
for ( pos = std:: find_if ( str.begin ( ) , str.end ( ) , isalpha ) ; pos ! = str.end ( ) ;
pos = std:: find_if ( prev, str.end ( ) , isalpha ) )
{
prev = std:: find_if_not ( pos, str.end ( ) , isalpha ) ;
std:: string token( pos, prev) ;
std:: cout << token << std:: endl ;
}
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y2N0eXBlPgojaW5jbHVkZSA8c3N0cmVhbT4KCnZvaWQgcmVhZEFscGhhKGNvbnN0IHN0ZDo6c3RyaW5nKTsKCmludCBtYWluKCkgewoJc3RkOjpzdHJpbmcgc3RyID0gCgkiTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC5cbiIKCSJDcmFzIGJsYW5kaXQgcmlzdXMgZWdldCBudW5jIGZpbmlidXMsIGVnZXQgY29uZGltZW50dW0gbGVjdHVzIFxuIgoJImNvbW1vZG8uIE51bGxhIGEgZWxlaWZlbmQgbWF1cmlzLiBTZWQgYWMgdmVoaWN1bGEgbGFjdXMuIFxuIgoJIkZ1c2NlIGxhY3VzIGVyb3MsIHBvcnR0aXRvciBhdCBtYXNzYSB2ZWwsIGxhY2luaWEgcGhhcmV0cmEgcHVydXMuIFxuIgoJIkN1cmFiaXR1ciB2aXRhZSBtYXNzYSBhYyB0b3J0b3IgcnV0cnVtIHJ1dHJ1bSBldSBzaXQgYW1ldCBtYWduYS4gXG4iCgkiQ3VyYWJpdHVyIGV0IGVzdCB2aXRhZSBvZGlvIGx1Y3R1cyBzZW1wZXIgdml0YWUgdmVsIG5pc2kuIjsKCQoJcmVhZEFscGhhKHN0cik7CgkKCXJldHVybiAwOwp9CgoKdm9pZCByZWFkQWxwaGEoY29uc3Qgc3RkOjpzdHJpbmcgc3RyVG9SZWFkKQp7CglzdGQ6OmlzdHJpbmdzdHJlYW0gaXNzKHN0clRvUmVhZCk7CglzdGQ6OnN0cmluZyBzdHI7CiAgICBmb3IgKHN0ZDo6c3RyaW5nOjppdGVyYXRvciBwb3MsIHByZXY7IHN0ZDo6Z2V0bGluZShpc3MsIHN0cik7KQogICAgewogICAgICAgIGZvciAocG9zID0gc3RkOjpmaW5kX2lmKHN0ci5iZWdpbigpLCBzdHIuZW5kKCksIGlzYWxwaGEpOyBwb3MgIT0gc3RyLmVuZCgpOwogICAgICAgIAlwb3MgPSBzdGQ6OmZpbmRfaWYocHJldiwgc3RyLmVuZCgpLCBpc2FscGhhKSkKICAgICAgICB7CiAgICAgICAgCXByZXYgPSBzdGQ6OmZpbmRfaWZfbm90KHBvcywgc3RyLmVuZCgpLCBpc2FscGhhKTsKICAgICAgICAgICAgc3RkOjpzdHJpbmcgdG9rZW4ocG9zLCBwcmV2KTsKICAgICAgICAgICAgc3RkOjpjb3V0IDw8IHRva2VuIDw8IHN0ZDo6ZW5kbDsKICAgICAgICB9CiAgICB9Cn0=