The LC_CTYPE category source definition in locale source files defines the attributes of characters in the locale that is compiled from that source by the LOCALDEF utility. A LC_CTYPE definition consists of keywords and character representations.
Character Representations
Character representations are hexadecimal
values associated with the character in the given coded character
set, or symbolic names mapped to characters in the charmap file.
You can represent a series of characters by using three adjacent periods as an ellipsis symbol (...). An ellipsis is interpreted as including all characters with an encoded value higher than the encoded value of the character preceding the ellipsis and lower than the encoded value following the ellipsis.
An ellipsis is valid within a single encoded character set.
For example, \x30;...;\x39; includes in the character class all characters with encoded values from \x30 to \x39.
Keywords
The LC_CTYPE category has 14 recognized
keywords:
You may define additional character classes using your own keywords. To determine whether a character belongs to a character class, use the wctype function to return a handle for the character class from the LC_CTYPE category. You can then use this handle with the iswctype function to determine if the character belongs to that class.
In the descriptions, the term "automatically included" means that it is not an error either to include or omit any of the referenced characters; they are assumed by default even if the entire keyword is missing and accepted if present.
When a character is automatically included, it has an encoded value dependent on the charmap file in effect. If no charmap file is specified, the encoding of the encoded character set IBM-850 is assumed.
copy
Specifies the name of
an existing locale to be used as the source for the definition of
this category. If this keyword is specified, no other keywords
are present in this category. If the locale is not found, an
error is reported and no locale output is created. The copy keyword cannot specify a locale that also specifies the
copy keyword for the same category.
upper
Defines characters to be classified as uppercase
letters. No character defined for the keywords cntrl, digit,
punct, or space can be specified. The uppercase letters A through
Z are automatically included in this class.
The isupper
and iswupper functions test for any character and wide character,
respectively, included in this class.
lower
Defines characters to be
classified as lowercase letters. No character defined for the
keywords cntrl, digit, punct, or space can be specified. The
lowercase letters a through z are automatically included in this
class.
The islower and iswlower functions test for
any character and wide character, respectively, included in this
class.
alpha
Defines characters to be classified as letters.
No character defined for the keywords cntrl,digit, punct, or
space can be specified. Characters classified as either upper or
lower are automatically included in this class.
The isalpha and iswalpha functions test for
any character or wide character, respectively, included in this
class.
digit
Defines characters to
be classified as numeric digits. Only the digits 0, 1, 2, 3, 4,
5, 6, 7, 8, 9 can be specified. If they are, they must be in
contiguous ascending sequence by numerical value. The digits 0
through 9 are automatically included in this class.
The isdigit and iswdigit functions test for
any character or wide character, respectively, included in this
class.
space
Defines characters to
be classified as whitespace characters. No character defined for
the keywords upper, lower, alpha, digit, or xdigit can be
specified for space. The characters <space>,
<form-feed>, <newline>, <carriage-return>,
<horizontal-tab>, and <vertical-tab>, and any
characters defined in the class blank are automatically included
in this class.
The functions isspace and iswspace test for any character or wide character, respectively,
included in this class.
cntrl
Defines characters to
be classified as control characters. No character defined for the
keywords upper, lower, alpha, digit, punct, graph, print, or
xdigit can be specified for cntrl.
The functions iscntrl and iswcntrl test for any character or wide character, respectively,
included in this class.
punct
Defines characters to
be classified as punctuation characters. No character defined for
the keywords upper, lower, alpha, digit, cntrl, or xdigit, or as
the <space> character, can be specified.
The functions ispunct and iswpunct test for any character or wide character, respectively,
included in this class.
graph
Defines characters to
be classified as printing characters, not including the
<space> character. Characters specified for the keywords
upper, lower, alpha, digit, xdigit, and punct are automatically
included. No character specified in the keyword cntrl can be
specified for graph.
The functions isgraph and iswgraph test for any character or wide character, respectively,
included in this class.
print
Defines characters to be
classified as printing characters, including the <space>
character. Characters specified for the keywords upper, lower,
alpha, digit, xdigit, punct, and the <space> character are
automatically included. No character specified in the keyword
cntrl can be specified for print.
The functions isprint and iswprint test for any character or wide character, respectively,
included in this class.
xdigit
Defines characters to
be classified as hexadecimal digits. Only the characters defined
for the class digit can be specified, in contiguous ascending
sequence by numerical value, followed by one or more sets of six
characters representing the hexadecimal digits 10 through 15,
with each set in ascending order (for example, A, B, C, D, E, F,
a, b, c, d, e, f). The digits 0 through 9, the uppercase letters
A through F, and the lowercase letters a through f are
automatically included in this class.
The functions isxdigit and iswxdigit test for any character or wide character, respectively,
included in this class.
blank
Defines characters to
be classified as blank characters. The characters <space>
and <tab> are automatically included in this class.
The functions isblank and iswblank test for any character or wide character, respectively,
included in this class.
toupper
Defines the mapping of
lowercase letters to uppercase letters. The operand consists of
character pairs, separated by semicolons. The characters in each
character pair are separated by a comma; the pair is enclosed in
parentheses. The first character in each pair is the lowercase
letter, and the second is the corresponding uppercase letter.
Only characters specified for the keywords lower and upper can be
specified for toupper. The lowercase letters a through z, their
corresponding uppercase letters A through Z, are automatically in
this mapping, but only when the toupper keyword is omitted from
the locale definition.
The toupper keyword affects the behavior of the toupper and towupper functions for mapping
characters and wide characters, respectively.
tolower
Defines the mapping of
uppercase letters to lowercase letters. The operand consists of
character pairs, separated by semicolons. The characters in each
character pair are separated by a comma; the pair is enclosed by
parentheses. The first character in each pair is the uppercase
letter, and the second is its corresponding lowercase letter.
Only characters specified for the keywords lower and upper can be
specified. If the tolower keyword is omitted from the one
specified for the toupper.
The tolower keyword affects the behavior of the tolower and towlower functions for mapping
characters and wide characters, respectively.
You do not need to code tolower in your locale. If tolower is not
included in the locale source, then the tolower table is
generated as the mirror image of the toupper table.
Example: LC_CTYPE Locale Category Definition
![]()
Internationalization
Localization
and Locales
![]()
Locale Categories
Locale Source
Files