#include <iostream>
#include <string>
#include <vector>
#include <cctype>

std::vector<std::string> parse(const char* cmd, int length)
{
    std::vector<std::string> arguments;
    const char *start = cmd;
    const char *stop = cmd + length;
    while (start < stop) {
        while ((start < stop) && isspace(*start)) ++start;
        if (start == stop) break;
        const char *end = start + 1;
        while ((end < stop) && !isspace(*end)) ++end;
        arguments.push_back(std::string(start, end-start));
        start = end + 1;
    }
    return arguments;
}

int main()
{
	const char cmd[] = "param1 param2 param3";
	std::vector<std::string> args = parse(cmd, sizeof(cmd)-1);
	for(auto &s : args)
		std::cout << s << std::endl;
	return 0;
}