TOUPPER(3) | Library Functions Manual | TOUPPER(3)

# NAME

`toupper`, `toupper_l`, `_toupper` — lower case to upper case letter conversion

# SYNOPSIS

`#include <ctype.h>`

int
`toupper`(int c);

int
`toupper_l`(int c, locale_t locale);

int
`_toupper`(int c);

# DESCRIPTION

The `toupper`() and `toupper_l`() functions convert a lower-case letter to the corresponding upper-case letter. The `_toupper`() function is identical to `toupper`() except that c must be a lower-case letter.

OpenBSD always uses the C locale for these functions, ignoring the global locale, the thread-specific locale, and the locale argument.

# RETURN VALUES

If the argument to the `toupper`() or `toupper_l`() function is a lower-case letter, the corresponding upper-case letter is returned if there is one; otherwise the argument is returned unchanged. If the argument to the `_toupper`() function is a lower-case letter, the corresponding upper-case letter is returned; otherwise the output is undefined.

# ENVIRONMENT

On systems supporting non-ASCII single-byte character encodings, the results of `toupper`() and `_toupper`() may depend on the `LC_CTYPE` locale(1).

# SEE ALSO

isalnum(3), isalpha(3), isascii(3), isblank(3), iscntrl(3), isdigit(3), isgraph(3), islower(3), isprint(3), ispunct(3), isspace(3), isupper(3), isxdigit(3), stdio(3), toascii(3), tolower(3), towupper(3), ascii(7)

# STANDARDS

The `toupper`() function conforms to ANSI X3.159-1989 (“ANSI C89”), and `toupper_l`() to IEEE Std 1003.1-2008 (“POSIX.1”).

# HISTORY

The `toupper`() function first appeared in Version 7 AT&T UNIX and acquired the current semantics in AT&T System III UNIX, where `_toupper`() first appeared.

The `toupper_l`() function has been available since OpenBSD 6.2.

# CAVEATS

The argument c must be `EOF` or representable as an unsigned char; otherwise, the result is undefined.

September 11, 2022 | Debian