#include <ctype.h> int toupper(int c); int tolower(int c);int toupper_l(int c, locale_t locale);int tolower_l(int c, locale_t locale);
Feature Test Macro Requirements for glibc (see feature_test_macros(7) ):
toupper_l(), tolower_l():
_GNU_SOURCE
- Since glibc 2.10:
- _XOPEN_SOURCE >= 700
- Before glibc 2.10:
If c is a lowercase letter, toupper() returns its uppercase equivalent, if an uppercase representation exists in the current locale. Otherwise, it returns c. The toupper_l() function performs the same task, but uses the locale referred to by the locale handle locale.
If c is a uppercase letter, tolower() returns its lowercase equivalent, if a lowercase representation exists in the current locale. Otherwise, it returns c. The tolower_l() function performs the same task, but uses the locale referred to by the locale handle locale.
If c is neither an unsigned char value nor EOF, the behavior of these functions is undefined.
The behavior of toupper_l() and tolower_l() is undefined if locale is the special locale object LC_GLOBAL_LOCALE (see duplocale(3) ) or is not a valid locale object handle.
toupper_l(), tolower_l(): POSIX.1-2008.
In some non-English locales, there are lowercase letters with no corresponding uppercase equivalent; the German sharp s is one example.