Declrations
namespace html { template <class CharT, class InIter, class OutIter> OutIter escape(InIter first, InIter last, OutIter result); template <class Ch, class Tr> std::basic_string<Ch, Tr> escape(const std::basic_string<Ch, Tr> s); template <class CharT> std::basic_string<CharT> escape(const CharT* s); }
Overview
html::escape は,html 文書で制御文字として使われている文字をエスケープするための関数です. エスケープする文字は,"&",""","<",">", "'"の 5 つです.尚,InIter と OutIter を引数に指定する関数を使用する場合は,以下のように文字型を明示する必要があります.
std::string src; std::string dest; std::insert_iterator pos(dest, dest.begin()); clx::html::escape<char>(src.begin(), src.end(), pos)
Example
#include <iostream> #include <iterator> #include "clx/html.h" int main(int argc, char* argv[]) { std::ostreambuf_iterator<char> result(std::cout); std::istreambuf_iterator<char> input(std::cin); std::istreambuf_iterator<char> last; clx::html::escape<char>(input, last, result); return 0; }