---
name: "unicode_uc"
section: "3"
platform: "linux"
package: "libcourier-unicode-dev"
version: "2.3.2-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/unicode_uc"
---

# unicode\_uc(3)

unicode uppercase, lowercase, and titlecase character lookup

## NAME

unicode\_uc, unicode\_lc, unicode\_tc, unicode\_convert\_tocase - unicode uppercase, lowercase, and titlecase character lookup

## SYNOPSIS

```
#include <courier-unicode.h>
```

**char32\_t unicode\_uc(char32\_t** *c***);**

**char32\_t unicode\_lc(char32\_t** *c***);**

**char32\_t unicode\_tc(char32\_t** *c***);**

**char \*unicode\_convert\_tocase(const char \****str***, const char \****charset***, char32\_t (\****first\_char\_func***)(uncode\_char), char32\_t (\****char\_func***)(uncode\_char));**

## DESCRIPTION

**unicode\_uc**(), **unicode\_lc**(), **unicode\_tc**() return the uppercase, lowercase, or the titlecase equivalent of the unicode character *c*. If this character does not have an uppercase, lowercase, or a titlecase equivalent, these functions return *c*, the same character.

**unicode\_convert\_tocase**() takes the string *str* in the character set *charset*. *first\_char\_func* and *char\_func*, each, should be **unicode\_uc**, **unicode\_lc**, or **unicode\_tc**. **unicode\_convert\_tocase**() returns a malloc()ed buffer. The first unicode character in *str* gets processed by *first\_char\_func*, and all other characters by *char\_func*.

## SEE ALSO

[**courier-unicode**(7)](/courier-unicode/7.md), [**unicode\_convert**(3)](/unicode_convert/3.md), [**unicode\_default\_chset**(3)](/unicode_default_chset/3.md), [**unicode\_html40ent\_lookup**(3)](/unicode_html40ent_lookup/3.md), [**unicode\_category\_lookup**(3)](/unicode_category_lookup/3.md), [**unicode\_grapheme\_break**(3)](/unicode_grapheme_break/3.md), [**unicode\_word\_break**(3)](/unicode_word_break/3.md), [**unicode\_line\_break**(3)](/unicode_line_break/3.md).

## AUTHOR

**Sam Varshavchik**

Author
