RESTWebサービスの一部として「ルーター」のURLのパス部分を解析する必要があります。HTTPリクエストの処理にPIONライブラリを使用しています。このライブラリには、URLパスの一部を取得する機能がないようです。これを行う別のライブラリが見つかりません。http://www.w3.org/Library/src/HTParse.cは、たとえばパスの一部を提供していません。
これを行うためのより速く、より堅牢な方法はありますか?
std::vector<std::string> parsePath(std::string path)
{
std::string delimiter = "/";
std::string part = "";
std::size_t firstPos = 0;
std::size_t secondPos = 0;
std::vector<std::string> parts;
while (firstPos != std::string::npos)
{
firstPos = path.find(delimiter, firstPos);
secondPos = path.find(delimiter, firstPos + 1);
part = path.substr(firstPos + 1, (secondPos - 1) - firstPos);
if (part != "") parts.push_back(part);
firstPos = secondPos;
}
return parts;
}