Case Conversion (The GNU C Library)

### 4.2 Case Conversion ¶

This section explains the library functions for performing conversions such as case mappings on characters. For example, `toupper` converts any character to upper case if possible. If the character can’t be converted, `toupper` returns it unchanged.

These functions take one argument of type `int`, which is the character to convert, and return the converted character as an `int`. If the conversion is not applicable to the argument given, the argument is returned unchanged.

Compatibility Note: In pre-ISO C dialects, instead of returning the argument unchanged, these functions may fail when the argument is not suitable for the conversion. Thus for portability, you may need to write `islower(c) ? toupper(c) : c` rather than just `toupper(c)`.

These functions are declared in the header file `ctype.h`.

Function: `int` tolower `(int c)` ¶

  Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

  If c is an upper-case letter, `tolower` returns the corresponding lower-case letter. If c is not an upper-case letter, c is returned unchanged.

Function: `int` toupper `(int c)` ¶

  Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

  If c is a lower-case letter, `toupper` returns the corresponding upper-case letter. Otherwise c is returned unchanged.

Function: `int` toascii `(int c)` ¶

  Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

  This function converts c to a 7-bit `unsigned char` value that fits into the US/UK ASCII character set, by clearing the high-order bits. This function is a BSD extension and is also an SVID extension.

Function: `int` _tolower `(int c)` ¶

  Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

  This is identical to `tolower`, and is provided for compatibility with the SVID. See SVID (The System V Interface Description).

Function: `int` _toupper `(int c)` ¶

  Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

  This is identical to `toupper`, and is provided for compatibility with the SVID.