#include #include #include using namespace std; template class Tokenizer { public: vector parse(string haystack, string separator); }; template vector Tokenizer::parse(string haystack, string separator) { vectorresult; int startPos = 0; int lastFoundPos = -1; while (true) { size_t foundPos = haystack.find(separator, startPos); if (foundPos != string::npos) { T token = haystack.substr(startPos, foundPos - startPos); startPos = foundPos + separator.length(); result.push_back(token); lastFoundPos = foundPos; } else { startPos = lastFoundPos + separator.length(); T token = haystack.substr(startPos, haystack.size() - startPos); result.push_back(token); break; } } return result; } int main() { //Problem 1 /*Tokenizerx; string haystack, separator; cout << "Input haystack string: "; getline(cin, haystack); cout << "Input separator string: "; getline(cin, separator); vectorresult = x.parse(haystack, separator); cout << "Sub strings:" << endl; for (int i = 0; i < result.size(); i++) cout << result[i] << endl;*/ //Problem 2 string integers; Tokenizerm; cout << "Input a string of multiple integers: "; getline(cin, integers); vectorkq = m.parse(integers," "); cout << "Sub strings:" << endl; for (int i = 0; i < kq.size(); i++) cout << kq[i] << endl; return 0; }