<cctype>
The <cctype>
header (from the C standard <ctype.h>
header) declares a number of
functions for testing and mapping narrow character types. For working
with wide characters, see <cwctype>
.
All the functions take int
parameters, but the value of the parameter must be an unsigned
char
. Most programs work with ordinary
char
, so you must cast the parameters
and some of the return types:
char c; if (std::isalnum(static_cast<unsigned char>(c))) ... c = static_cast<char>(std::tolower(static_cast<unsigned char>(c)));
The only other value that is permitted is EOF
.
These functions get their information from the current locale, as
set by calling setlocale
. The
"C
" locale is the only one with
behavior that is defined in the standard; all other locales can define
these functions to include or exclude different characters. Even in the
"C
" locale, the behavior of some
functions depends on the execution character set (see Chapter 1). One requirement for all
locales is that isalpha
, iscntrl
, isdigit
, ispunct
, and the space character ('
') are mutually exclusive. See <clocale>
for information about the
setlocale
function.
See the <locale>
header
for a more flexible (albeit more complicated) mechanism for testing and
transforming characters. Each of the functions in this section has a
corresponding function in <locale>
that takes an explicit locale
argument. Also, the ctype
facet supports similar ...
Get C++ In a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.