TOUPPER

Section: Linux Programmer's Manual (3)
Updated: 2014-03-18
Index Return to Main Contents
 

NAME

toupper, tolower, toupper_l, tolower_l - convert uppercase or lowercase  

SYNOPSIS

#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():

Since glibc 2.10:
_XOPEN_SOURCE >= 700
Before glibc 2.10:
_GNU_SOURCE
 

DESCRIPTION

These functions convert lowercase letters to uppercase, and vice versa.

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.  

RETURN VALUE

The value returned is that of the converted letter, or c if the conversion was not possible.  

ATTRIBUTES

 

Multithreading (see pthreads(7))

The toupper() and tolower() functions are thread-safe with exceptions. These functions can be safely used in multithreaded applications, as long as setlocale(3) is not called to change the locale during their execution.  

CONFORMING TO

toupper(), tolower(): C89, C99, 4.3BSD, POSIX.1-2001, POSIX.1-2008.

toupper_l(), tolower_l(): POSIX.1-2008.  

NOTES

The details of what constitutes an uppercase or lowercase letter depend on the locale. For example, the default C locale does not know about umlauts, so no conversion is done for them.

In some non-English locales, there are lowercase letters with no corresponding uppercase equivalent; the German sharp s is one example.  

SEE ALSO

isalpha(3), newlocale(3), setlocale(3), uselocale(3), towlower(3), towupper(3), locale(7)  

COLOPHON

This page is part of release 3.74 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at http://www.kernel.org/doc/man-pages/.


 

Index

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUE
ATTRIBUTES
Multithreading (see pthreads(7))
CONFORMING TO
NOTES
SEE ALSO
COLOPHON