---
name: "wctype"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/iswctype"
---

# wctype(3)

wide character class functions

Part of [iswctype(3)](/iswctype/3.md).

## NAME

**iswctype**, **wctype** – 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*);

## 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*.

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

## 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.
