Info Node: (libc.info)Wide Character Case Conversion
(libc.info)Wide Character Case Conversion
Mapping of wide characters.
===========================
The classification functions are also generalized by the ISO C
standard. Instead of just allowing the two standard mappings, a locale
can contain others. Again, the `localedef' program already supports
generating such locale data files.
- Data Type: wctrans_t
This data type is defined as a scalar type which can hold a value
representing the locale-dependent character mapping. There is no
way to construct such a value apart from using the return value of
the `wctrans' function.
This type is defined in `wctype.h'.
- Function: wctrans_t wctrans (const char *PROPERTY)
The `wctrans' function has to be used to find out whether a named
mapping is defined in the current locale selected for the
`LC_CTYPE' category. If the returned value is non-zero, you can
use it afterwards in calls to `towctrans'. If the return value is
zero no such mapping is known in the current locale.
Beside locale-specific mappings there are two mappings which are
guaranteed to be available in every locale:
`"tolower"' `"toupper"'
These functions are declared in `wctype.h'.
- Function: wint_t towctrans (wint_t WC, wctrans_t DESC)
`towctrans' maps the input character WC according to the rules of
the mapping for which DESC is a descriptor, and returns the value
it finds. DESC must be obtained by a successful call to `wctrans'.
This function is declared in `wctype.h'.
For the generally available mappings, the ISO C standard defines
convenient shortcuts so that it is not necessary to call `wctrans' for
them.
- Function: wint_t towlower (wint_t WC)
If WC is an upper-case letter, `towlower' returns the corresponding
lower-case letter. If WC is not an upper-case letter, WC is
returned unchanged.
`towlower' can be implemented using
towctrans (wc, wctrans ("tolower"))
This function is declared in `wctype.h'.
- Function: wint_t towupper (wint_t WC)
If WC is a lower-case letter, `towupper' returns the corresponding
upper-case letter. Otherwise WC is returned unchanged.
`towupper' can be implemented using
towctrans (wc, wctrans ("toupper"))
This function is declared in `wctype.h'.
The same warnings given in the last section for the use of the wide
character classification functions apply here. It is not possible to
simply cast a `char' type value to a `wint_t' and use it as an argument
to `towctrans' calls.