CLX C++ Libraries
Home >> html::escape

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

example_html.cpp

#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;
}

Reference

  1. S34 - Making of C++ Technical Documents