std::isdigit(3)
π NAME π
std::isdigit - std::isdigit
Okay bestie, welcome to std::isdigit(3) from the C++ Standard Libary manual β yes, thatβs the manual name, typo and all, iykyk π
. This function is the main character for checking whether a character is one of the decimal digits.
β¨ Synopsis β¨
Defined in header <cctype>:
int isdigit( int ch );
Checks if the given character is one of the 10 decimal digits: 0123456789.
The behavior is undefined if the value ofchis not representable asunsigned charand is not equal toEOF. This is not a drill, bestie π.
π Parameters π
chβ character to classify π«Ά
πΈ Return value πΈ
Non-zero value if the character is a numeric character, zero otherwise. Simple as that, periodt β¨.
π¦ Notes π¦
isdigit and isxdigit are the only standard narrow character classification functions that are not affected by the currently installed C locale. Although some implementations (e.g. Microsoft in 1252 codepage) may classify additional single-byte characters as digits. So likeβ¦ mostly iconic and locale-proof, but not every implementation is out here behaving identically π.
Like all other functions from <cctype>, the behavior of std::isdigit is undefined if the argumentβs value is neither representable as unsigned char nor equal to EOF. To use these functions safely with plain chars (or signed chars), the argument should first be converted to unsigned char:
bool my_isdigit(char ch)
{
return std::isdigit(static_cast<unsigned char>(ch));
}
Similarly, they should not be directly used with standard algorithms when the iteratorβs value type is char or signed char. Instead, convert the value to unsigned char first:
int count_digits(const std::string& s)
{
return std::count_if(s.begin(), s.end(),
// static_cast<int(*)(int)>(std::isdigit)
// wrong
// [](int c){ return std::isdigit(c); }
// wrong
// [](char c){ return std::isdigit(c); }
// wrong
[](unsigned char c){ return std::isdigit(c); }
// correct
);
}
This is the βplease do the cast, Iβm beggingβ part of the page, and honestly itβs giving safety-check realness π₯.
π See also π
isdigit(std::locale)β checks if a character is classified as a digit by a locale (function template)iswdigitβ checks if a wide character is a digit (function)- C documentation for
isdigit
And because the page also drops this whole ASCII values classification chart, here it is verbatim, bestie β no details left behind π«Ά:
ASCII values characters iscntrl isprint isspace
isblank isgraph ispunct isalnum isalpha isupper islower isdigit
isxdigit decimal hexadecimal octal iswcntrl iswprint
iswspace iswblank iswgraph iswpunct iswalnum iswalpha iswupper iswlower
iswdigit iswxdigit 0β8 \x0β\x8 \0β\10 control codes β 0
0 0 0 0 0 0 0 0
0 0 0
(NUL, etc.) 9 \x9 \11
tab (\t) β 0 0 β 0 β 0 0 0 0
0 0 0 0 0
whitespaces 10β13 \xAβ\xD \12β\15
(\n, \v, \f, β 0 0 β 0 0 0 0 0
0 0 0 0 0
\r) 14β31 \xEβ\x1F \16β\37 control
codes β 0 0 0 0 0 0 0 0
0 0 0 0 32 \x20 \40 space
0 β 0 β 0 β 0 0 0 0 0
0 0 0 0 33β47 \x21β\x2F \41β\57
!"#$%&'()*+,-./ 0 β 0 0 0 β 0 β 0 0
0 0 0 0 0 48β57 \x30β\x39 \60β\71
0123456789 0 β 0 0 0 β 0 0 β 0
0 0 0 β 0 β 0 58β64 \x3Aβ\x40 \72β\100
:;<=>?@ 0 β 0 0 0 β 0 β 0 0
0 0 0 0 0 65β70 \x41β\x46 \101β\106
ABCDEF 0 β 0 0 0 β 0 0 β 0
β 0 β 0 0 0 β 0 71β90 \x47β\x5A \107β\132
GHIJKLMNOP 0 β 0 0 0 β 0 0 β 0
β 0 β 0 0 0 0
QRSTUVWXYZ 91β96 \x5Bβ\x60 \133β\140
[\]^_` 0 β 0 0 0 β 0 β 0 0
0 0 0 0 0 97β102 \x61β\x66 \141β\146
abcdef 0 β 0 0 0 β 0 0 β 0
β 0 0 β 0 0 β 0 103β122 \x67β\x7A \147β\172
ghijklmnop 0 β 0 0 0 β 0 0 β 0
β 0 0 β 0 0 0
qrstuvwxyz 123β126 \x7Bβ\x7E \172β\176
{|}~ 0 β 0 0 0 β 0 β 0 0
0 0 0 0 0 127 \x7F \177
backspace β 0 0 0 0 0 0 0
0 0 0 0 0
character (DEL)
Okay thatβs the whole vibe, mwah π β source: http://cppreference.com, version/date: 2024.06.10, page: std::isdigit(3) πβ¨
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms