Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::isxdigit(std::locale)

      From cppreference.com
      <cpp‎ |locale
       
       
       
      Localization library
       
      Defined in header<locale>
      template<class CharT>
      bool isxdigit( CharT ch,const locale& loc);

      Checks if the given character is classified as a hexadecimal digit by the given locale'sstd::ctype facet.

      Contents

      [edit]Parameters

      ch - character
      loc - locale

      [edit]Return value

      Returnstrue if the character is classified as a hexadecimal digit,false otherwise.

      [edit]Possible implementation

      template<class CharT>bool isxdigit(CharT ch,conststd::locale& loc){returnstd::use_facet<std::ctype<CharT>>(loc).is(std::ctype_base::xdigit, ch);}

      [edit]Example

      Run this code
      #include <iostream>#include <locale>#include <string>#include <unordered_set> struct gxdigit_ctype:std::ctype<wchar_t>{std::unordered_set<wchar_t> greek_digits{L'α', L'β', L'γ', L'δ', L'ε', L'ζ'}; bool do_is(mask m, char_type c)const override{return(m& xdigit)&& greek_digits.contains(c)?true// 6 first Greek small letters will be classified as digits: ctype::do_is(m, c);// leave the rest to the parent class}}; int main(){std::wstring text= L"0123456789abcdefABCDEFαβγδεζηθικλμ";std::locale loc(std::locale(""), new gxdigit_ctype); std::locale::global(std::locale("en_US.utf8"));std::wcout.imbue(std::locale()); std::wcout<<"Hexadecimal digits in text: ";for(constwchar_t c: text)if(std::isxdigit(c, loc))std::wcout<< c<< L' ';std::wcout<< L'\n'; std::wcout<<"Not hexadecimal digits in text: ";for(constwchar_t c: text)if(notstd::isxdigit(c, loc))std::wcout<< c<< L' ';std::wcout<< L'\n';}

      Output:

      Hexadecimal digits in text: 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F α β γ δ ε ζNot hexadecimal digits in text: η θ ι κ λ μ

      [edit]See also

      checks if a character is a hexadecimal character
      (function)[edit]
      checks if a wide character is a hexadecimal character
      (function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/locale/isxdigit&oldid=160125"

      [8]ページ先頭

      ©2009-2025 Movatter.jp