so... this is how to parse URL search parameters in C++
std::unordered_map<std::string_view, std::string_view> search_parameters;
size_t q_index = decoded_url.rfind('?');
if (q_index == std::string::npos)
return search_parameters;
const std::string_view search = std::string_view(decoded_url).substr(decoded_url.rfind('?')+1);
std::println("Search: \"{}\"", search);
for (const auto parameter : std::views::split(search, '&')) {
std::println("Parameter: {}", parameter);
const std::string_view parameter_view = std::string_view(parameter);
size_t equals_index = parameter_view.find('=');
if (equals_index != std::string::npos) {
const std::string_view key = parameter_view.substr(0, equals_index);
const std::string_view value = parameter_view.substr(equals_index+1);
std::println("{} :: {}", key, value);
search_parameters.emplace(key, value);
}
}
return search_parameters;