Набросал примерчик (отрывок из кода), меня на первых порах устроит, может кому пригодится:
string path = "param1/param2/name1=value1&name2=value2";
pos = 0;
int posEnd = path.length();
int mode = 1;
int index = 1;
string name = "", value = "";
while (true) {
if (pos >= posEnd || path[pos] == '/' || path[pos] == '&') {
if (mode == 1) {
if (name != "") {
value = name;
name = "p" + to_string(index);
index++;
params.insert(name, value);
name = "";
value = "";
}
}
else {
params.insert(name, value);
name = "";
value = "";
mode = 1;
}
if (pos >= posEnd) break;
}
else if (path[pos] == '=') {
mode = 2;
}
else {
if (mode == 1) name += path[pos]; else value += path[pos];
}
pos++;
}