// Soln5_5.cpp #include #include using std::cin; using std::cout; using std::endl; char* parse(const char* str) { static char* pStr = 0; static size_t len; static size_t start = 0; size_t pos; char* pReturn; // First time through, save the string if (str) { delete pStr; // in case it was allocated len = strlen(str); pStr = new char[len+1]; strcpy_s(pStr, len+1, str); } if (start >= len) return 0; // Walk the string from 'start' till we find a blank or the end for (pos = start; pStr[pos] != ' ' && pStr[pos] != '\0'; pos++); // Copy the string if we've a word to return, otherwise return NULL if (pos != start) { pReturn = new char[pos - start + 2]; size_t i = 0; for (size_t j=start; j