| Localization library | |||||||||||||||||||||||||
| Regular expressions library(C++11) | |||||||||||||||||||||||||
| Formatting library(C++20) | |||||||||||||||||||||||||
| Null-terminated sequence utilities | |||||||||||||||||||||||||
| Byte strings | |||||||||||||||||||||||||
| Multibyte strings | |||||||||||||||||||||||||
| Wide strings | |||||||||||||||||||||||||
| Primitive numeric conversions | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
| Text encoding identifications | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 |
| ch | - | character |
| loc | - | locale |
Returnstrue if the character is classified as a hexadecimal digit,false otherwise.
template<class CharT>bool isxdigit(CharT ch,conststd::locale& loc){returnstd::use_facet<std::ctype<CharT>>(loc).is(std::ctype_base::xdigit, ch);} |
#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: η θ ι κ λ μ
| checks if a character is a hexadecimal character (function)[edit] | |
| checks if a wide character is a hexadecimal character (function)[edit] |