fork(1) download
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. #include <cctype>
  5.  
  6. std::vector<std::string> parse(const char* cmd, int length)
  7. {
  8. std::vector<std::string> arguments;
  9. const char *start = cmd;
  10. const char *stop = cmd + length;
  11. while (start < stop) {
  12. while ((start < stop) && isspace(*start)) ++start;
  13. if (start == stop) break;
  14. const char *end = start + 1;
  15. while ((end < stop) && !isspace(*end)) ++end;
  16. arguments.push_back(std::string(start, end-start));
  17. start = end + 1;
  18. }
  19. return arguments;
  20. }
  21.  
  22. int main()
  23. {
  24. const char cmd[] = "param1 param2 param3";
  25. std::vector<std::string> args = parse(cmd, sizeof(cmd)-1);
  26. for(auto &s : args)
  27. std::cout << s << std::endl;
  28. return 0;
  29. }
Success #stdin #stdout 0s 4368KB
stdin
Standard input is empty
stdout
param1
param2
param3