C++ でURLEncode
C++でURLEncodeなプログラム無いか探していたけれど,boostのregexを使った巨大な奴とか,やたら凝ったやつしかなくて,もっとシンプルな奴が欲しいのに,それぐらい誰かのせておけよと思ったので,載せておく.
#include <iostream> #include <string> #include <stdio.h> std::string encode(const std::string &str) { std::ostringstream os; for (int i = 0; i < str.size(); i++) { char c = str[i]; if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') || c == '-' || c == '_' || c == '.' || c == '~') { os << c; } else { char s[4]; snprintf(s, sizeof(s), "%%%02x", c & 0xff); os << s; } } return os.str(); }