---
name: "wctype"
section: "3"
platform: "macos"
package: "Libc"
version: "1752.120.2"
release: "macOS 26.5"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/wctype"
---

# wctype(3)

wide character class functions

## NAME

**iswctype**, **iswctype\_l**, **wctype**, **wctype\_l** – wide character class functions

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

**#include \<wctype.h\>**

*int*\

**iswctype**(*wint\_t wc*, *wctype\_t charclass*);

*wctype\_t*\

**wctype**(*const char \*property*);

**#include \<wctype.h\>**

**#include \<xlocale.h\>**

*int*\

**iswctype\_l**(*wint\_t wc*, *wctype\_t charclass*, *locale\_t loc*);

*wctype\_t*\

**wctype\_l**(*const char \*property*, *locale\_t loc*);

## DESCRIPTION

The **wctype**() function returns a value of type *wctype\_t*, which represents the requested wide character class and may be used as the second argument for calls to **iswctype**().

The following character class names are recognised:

| | | | | | |
| --- | --- | --- | --- | --- | --- |
| alnum | cntrl | ideogram | print | space | xdigit |
| alpha | digit | lower | punct | special |
| blank | graph | phonogram | rune | upper |

The **iswctype**() function checks whether the wide character *wc* is in the character class *charclass*.

Although the **iswctype**() and **wctype**() functions use the current locale, the **iswctype\_l**() and **wctype\_l**() functions may be passed locales directly. See [xlocale(3)](/xlocale/3.md) for more information.

## RETURN VALUES

The **iswctype**() function returns non-zero if and only if *wc* has the property described by *charclass*, or *charclass* is zero.

The **wctype**() function returns 0 if *property* is invalid; otherwise, it returns a value of type *wctype\_t* that can be used in subsequent calls to **iswctype**().

## EXAMPLES

Reimplement [iswalpha(3)](/iswalpha/3.md) in terms of **iswctype**() and **wctype**():

```
int
myiswalpha(wint_t wc)
{
	return (iswctype(wc, wctype("alpha")));
}
```

## SEE ALSO

[ctype(3)](/ctype/3.md), [nextwctype(3)](/nextwctype/3.md), [xlocale(3)](/xlocale/3.md)

## STANDARDS

The **iswctype**() and **wctype**() functions conform to IEEE Std 1003.1-2001 (“POSIX.1”). The “ideogram”, “phonogram”, “special”, and “rune” character classes are extensions.

## HISTORY

The **iswctype**() and **wctype**() functions first appeared in FreeBSD 5.0.
