13.4 cctype

   

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

figs/acorn.gif

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

isalnum function Tests for an alphanumeric character

 int  isalnum  (int c) 

The isalnum function returns true (nonzero) if c is alphanumericthat is, it returns isalpha(c) isnumeric (c) .

isalpha function Tests for an alphabetic character

 int  isalpha  (int c) 

The isalpha function returns true (nonzero) if c is alphabetic. In the " C " locale, this includes only the characters for which islower (c) or isupper (c) is true. For other locales, other characters might be alphabetic.

iscntrl function Tests for a control character

 int  iscntrl  (int c) 

The iscntrl function returns true (nonzero) if c is a control character. The set of control characters depends on the locale and character set. In the 7-bit ASCII character set, the control characters are ' \0 '-' \x1F ' and ' \x7F '; other implementations might have different control characters. By definition, a control character is any character that is not a printable character ( isprint ).

isdigit function Tests for a digit character

 int  isdigit  (int c) 

The isdigit function returns true (nonzero) if c is a decimal digit characterthat is, ' '-' 9 'regardless of locale.

isgraph function Tests for a graphic character

 int  isgraph  (int c) 

The isgraph function returns true (nonzero) if c is any printing character ( isprint ) except space (' '). The set of printing characters varies with locale and character set.

islower function Tests for a lowercase letter

 int  islower  (int c) 

The islower function returns true (nonzero) if c is a lowercase letter. In the " C " locale, only the characters ' a '-' z ' are lowercase; different locales can define other lowercase characters.

isprint function Tests for a printable character

 int  isprint  (int c) 

The isprint function returns true (nonzero) if c is a printing character, including space (' '), according to the locale and character set. Informally, a printing character occupies space on a display device.

ispunct function Tests for a punctuation character

 int  ispunct  (int c) 

The ispunct function returns true (nonzero) for a punctuation character, that is, any printable character ( isprint ) other than space (' ') and alphanumeric characters ( isalnum ).

isspace function Tests for a white space character

 int  isspace  (int c) 

The isspace function returns true (nonzero) if c is a whitespace character. In the " C " locale, the space (' '), form feed (' \f '), newline (' \n '), carriage return (' \r '), horizontal tab (' \t '), and vertical tab (' \v ') characters are whitespace, but backspace (' \b ') is not. Different locales can define other whitespace characters.

isupper function Tests for an uppercase letter

 int  isupper  (int c) 

The isupper function returns true (nonzero) if c is an uppercase letter. In the " C " locale, only the characters ' A '-' Z ' are uppercase; different locales can define other uppercase characters

isxdigit function Tests for a hexadecimal digit character

 int  isxdigit  (int c) 

The isxdigit function returns true (nonzero) if c is any hexadecimal digit characterthat is, ' '-' 9 ', ' a '-' f ', or ' A '-' F 'regardless of locale.

tolower function Converts a character to lowercase

 int  tolower  (int c) 

The tolower function converts uppercase characters to lowercase. If c is uppercase (that is, isupper(c) returns true), tolower returns the corresponding lowercase character (for which islower returns true) in the current locale, if there is such a character. Otherwise, it returns c .

toupper function Converts a character to uppercase

 int  toupper  (int c) 

The touoper function converts lowercase characters to uppercase. If c is lowercase (that is, islower(c) returns true), toupper returns the corresponding uppercase character (for which isupper returns true) in the current locale, if there is such a character. Otherwise, it returns c .

   


C++ in a Nutshell
C++ in a Nutshell
ISBN: 059600298X
EAN: 2147483647
Year: 2005
Pages: 270
Authors: Ray Lischner

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net