Defined in header <locale> | ||||
---|---|---|---|---|
|
Checks if the given character is classified as a digit by the given locale's std::ctype
facet.
Parameters
ch | - | character |
loc | - | locale |
Return value
Returns true
if the character is classified as a digit, false
otherwise.
Possible implementation
|
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <iostream> #include <locale> #include <string> #include <set> struct jdigit_ctype : std::ctype< wchar_t > { std::set< wchar_t > jdigits{L '一' ,L '二' ,L '三' ,L '四' ,L '五' ,L '六' ,L '七' ,L '八' ,L '九' ,L '十' }; bool do_is(mask m, char_type c) const { if ((m & digit) && jdigits.count(c)) return true ; // Japanese digits will be classified as digits return ctype::do_is(m, c); // leave the rest to the parent class } }; int main() { std::wstring text = L "123一二三123" ; std::locale loc(std::locale( "" ), new jdigit_ctype); std::locale::global(std::locale( "" )); std::wcout.imbue(std::locale()); for ( wchar_t c : text) if (std:: isdigit (c, loc)) std::wcout << c << " is a digit\n" ; else std::wcout << c << " is NOT a digit\n" ; } |
Output:
1 2 3 4 5 6 7 8 9 | 1 is a digit 2 is a digit 3 is a digit 一 is a digit 二 is a digit 三 is a digit 1 is NOT a digit 2 is NOT a digit 3 is NOT a digit |
See also
checks if a character is a digit (function) | |
checks if a wide character is a digit (function) |
Please login to continue.