#include <iostream>
#include <string>
using namespace std;
int main() {
string mystring, token ;
size_t cur_token=0, next_token ;
mystring = "abc def ghi jklm nopq"; // fill 'mystring'
do {
next_token = mystring.find_first_of (" ", cur_token) ;
token = mystring.substr (cur_token, next_token-cur_token); // next_token-(nex_token==string::npos ? 0:cur_token) would be cleaner
if (next_token!=string::npos)
cur_token = next_token+1;
//mystring = mystring.substr (next_token + 1) ;
cout << token<<";"<<endl;
} while (next_token!=string::npos);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CgkKICAgIHN0cmluZyBteXN0cmluZywgdG9rZW4gOwogICAgc2l6ZV90IGN1cl90b2tlbj0wLCBuZXh0X3Rva2VuIDsKCW15c3RyaW5nID0gImFiYyBkZWYgZ2hpIGprbG0gbm9wcSI7ICAvLyBmaWxsICdteXN0cmluZycKCiAgICBkbyB7CiAgICAgICAgbmV4dF90b2tlbiA9IG15c3RyaW5nLmZpbmRfZmlyc3Rfb2YgKCIgIiwgY3VyX3Rva2VuKSA7CiAgICAgICAgdG9rZW4gPSBteXN0cmluZy5zdWJzdHIgKGN1cl90b2tlbiwgbmV4dF90b2tlbi1jdXJfdG9rZW4pOyAgLy8gbmV4dF90b2tlbi0obmV4X3Rva2VuPT1zdHJpbmc6Om5wb3MgPyAwOmN1cl90b2tlbikgd291bGQgYmUgY2xlYW5lcgogICAgICAgIGlmIChuZXh0X3Rva2VuIT1zdHJpbmc6Om5wb3MpIAogICAgICAgICAgICBjdXJfdG9rZW4gPSBuZXh0X3Rva2VuKzE7IAogICAgICAgIC8vbXlzdHJpbmcgPSBteXN0cmluZy5zdWJzdHIgKG5leHRfdG9rZW4gKyAxKSA7CiAgICAgICAgY291dCA8PCB0b2tlbjw8IjsiPDxlbmRsOwogICAgfSB3aGlsZSAobmV4dF90b2tlbiE9c3RyaW5nOjpucG9zKTsKICAgIAp9