#include <iostream>
#include <string>
#include <vector>
using namespace std;
vector<string> foo(const string& url)
{
vector<string> result;
auto a = url.find("?");
if (a == string::npos) return result;
auto b = url.find("&");
if (b == string::npos)
{
result.push_back(url.substr(a + 1, string::npos));
return result;
}
result.push_back(url.substr(a + 1, b - a - 1));
do
{
a = b;
b = url.find("&", a + 1);
result.push_back(url.substr(a + 1, b - a - 1));
} while (b != string::npos);
return result;
}
int main()
{
std::string url = "https://www.google.com/search?q=i+need+help&rlz=1C1CHBF_enUS851US851&oq=i+need+help&aqs=chrome.0.69i59j0l3j69i60l2.4646j0j7&sourceid=chrome&ie=UTF-8";
auto vec = foo(url);
for (const auto & i : vec)
cout << i << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCnZlY3RvcjxzdHJpbmc+IGZvbyhjb25zdCBzdHJpbmcmIHVybCkKewoJdmVjdG9yPHN0cmluZz4gcmVzdWx0OwoJYXV0byBhID0gdXJsLmZpbmQoIj8iKTsKCWlmIChhID09IHN0cmluZzo6bnBvcykgcmV0dXJuIHJlc3VsdDsKCQoJYXV0byBiID0gdXJsLmZpbmQoIiYiKTsKCWlmIChiID09IHN0cmluZzo6bnBvcykKCXsKCQlyZXN1bHQucHVzaF9iYWNrKHVybC5zdWJzdHIoYSArIDEsIHN0cmluZzo6bnBvcykpOwoJCXJldHVybiByZXN1bHQ7Cgl9CglyZXN1bHQucHVzaF9iYWNrKHVybC5zdWJzdHIoYSArIDEsIGIgLSBhIC0gMSkpOwoJZG8KCXsKCQlhID0gYjsKCQliID0gdXJsLmZpbmQoIiYiLCBhICsgMSk7CgkJcmVzdWx0LnB1c2hfYmFjayh1cmwuc3Vic3RyKGEgKyAxLCBiIC0gYSAtIDEpKTsKCX0gd2hpbGUgKGIgIT0gc3RyaW5nOjpucG9zKTsKCQoJcmV0dXJuIHJlc3VsdDsKfQoKaW50IG1haW4oKQp7CglzdGQ6OnN0cmluZyB1cmwgPSAiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9zZWFyY2g/cT1pK25lZWQraGVscCZybHo9MUMxQ0hCRl9lblVTODUxVVM4NTEmb3E9aStuZWVkK2hlbHAmYXFzPWNocm9tZS4wLjY5aTU5ajBsM2o2OWk2MGwyLjQ2NDZqMGo3JnNvdXJjZWlkPWNocm9tZSZpZT1VVEYtOCI7CglhdXRvIHZlYyA9IGZvbyh1cmwpOwoJZm9yIChjb25zdCBhdXRvICYgaSA6IHZlYykKCQljb3V0IDw8IGkgPDwgZW5kbDsKfQ==