cgicc查询字符串解析

The*_*y92 7 c++ cgi

我是C++和cgicc的新手,我想知道是否有一种简单的方法可以将get参数解析为cgi脚本??action=yes&function=no成阵列或类似的东西?

lad*_*dge 11

这是一个使用C++ 11中包含的正则表达式库的简单函数.

#include <regex>

// ...

std::map<std::string, std::string> Foo::Parse(const std::string& query)
{
    std::map<std::string, std::string> data;
    std::regex pattern("([\\w+%]+)=([^&]*)");
    auto words_begin = std::sregex_iterator(query.begin(), query.end(), pattern);
    auto words_end = std::sregex_iterator();

    for (std::sregex_iterator i = words_begin; i != words_end; i++)
    {
        std::string key = (*i)[1].str();
        std::string value = (*i)[2].str();
        data[key] = value;
    }

    return data;
}
Run Code Online (Sandbox Code Playgroud)