- #include <iostream> 
- #include <sstream> 
- #include <string> 
- #include <vector> 
-   
- int main() 
- { 
- 	std::string str = "I need to split input string";    
- 	std::vector<std::string> output; 
-   
- 	std::istringstream iss(str); 
- 	std::string word; 
-     const int max = 10; 
-   
- 	while((iss >> word)) 
-     {	 
- 	    // Check if the last element can still hold another word (+ space) 
- 	    if (output.size() > 0 && (output[output.size() - 1].size() + word.size() + 1) <= max) 
- 	        output[output.size() - 1] += ' ' + word; 
- 	    else         
- 	        output.push_back(word); 
- 	} 
-   
- 	for (auto&it : output) 
- 	    std::cout << it << std::endl; 
-   
- 	return 0; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KCmludCBtYWluKCkKewoJc3RkOjpzdHJpbmcgc3RyID0gIkkgbmVlZCB0byBzcGxpdCBpbnB1dCBzdHJpbmciOyAgIAoJc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IG91dHB1dDsKCQoJc3RkOjppc3RyaW5nc3RyZWFtIGlzcyhzdHIpOwoJc3RkOjpzdHJpbmcgd29yZDsKICAgIGNvbnN0IGludCBtYXggPSAxMDsKCgl3aGlsZSgoaXNzID4+IHdvcmQpKQogICAgewkKCSAgICAvLyBDaGVjayBpZiB0aGUgbGFzdCBlbGVtZW50IGNhbiBzdGlsbCBob2xkIGFub3RoZXIgd29yZCAoKyBzcGFjZSkKCSAgICBpZiAob3V0cHV0LnNpemUoKSA+IDAgJiYgKG91dHB1dFtvdXRwdXQuc2l6ZSgpIC0gMV0uc2l6ZSgpICsgd29yZC5zaXplKCkgKyAxKSA8PSBtYXgpCgkgICAgICAgIG91dHB1dFtvdXRwdXQuc2l6ZSgpIC0gMV0gKz0gJyAnICsgd29yZDsKCSAgICBlbHNlICAgICAgICAKCSAgICAgICAgb3V0cHV0LnB1c2hfYmFjayh3b3JkKTsKCX0KCQoJZm9yIChhdXRvJml0IDogb3V0cHV0KQoJICAgIHN0ZDo6Y291dCA8PCBpdCA8PCBzdGQ6OmVuZGw7CiAgICAKCXJldHVybiAwOwp9