<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 ...