![The C Standard Library Reference](/c_standard_library/images/c-mini-logo.jpg)
- The C Standard Library
- C Library - Home
- C Library - <assert.h>
- C Library - <complex.h>
- C Library - <ctype.h>
- C Library - <errno.h>
- C Library - <fenv.h>
- C Library - <float.h>
- C Library - <inttypes.h>
- C Library - <iso646.h>
- C Library - <limits.h>
- C Library - <locale.h>
- C Library - <math.h>
- C Library - <setjmp.h>
- C Library - <signal.h>
- C Library - <stdalign.h>
- C Library - <stdarg.h>
- C Library - <stdbool.h>
- C Library - <stddef.h>
- C Library - <stdio.h>
- C Library - <stdlib.h>
- C Library - <string.h>
- C Library - <tgmath.h>
- C Library - <time.h>
- C Library - <wctype.h>
- C Standard Library Resources
- C Library - Quick Guide
- C Library - Useful Resources
- C Library - Discussion
- C Programming Resources
- C Programming - Tutorial
- C - Useful Resources
C library - wctype() function
The C wctype library wctype() function is used to obtain a desc (descriptor) for a wide character type. This descriptor can be used with the "iswctype" function to check whether a given wide character belongs to a specific character class.
This function can hold the following value of "str" −
- alnum − identifies the category used by iswalnum
- alpha − identifies the category used by iswalpha
- blank − identifies the category used by iswblank (C99)
- cntrl − identifies the category used by iswcntrl
- digit − identifies the category used by iswdigit
- graph − identifies the category used by iswgraph
- lower − identifies the category used by iswlower
- print − identifies the category used by iswprint
- space − identifies the category used by iswspace
- upper − identifies the category used by iswupper
- xdigit − identifies the category used by iswxdigit
Syntax
Following is the C library syntax of wctype() function −
wctype_t wctype( const char* str );
Parameters
This function accepts a single parameter −
-
str − This is a pointer to a string of type "const char*" that specifies the name of the character class for which a descriptor is to be obtained.
Return Value
This function returns a value of type wctype_t which is the descriptor for the specified character class.
Example 1
Following is the basic c program to demonstrate the use of wctype() to obtain a descriptor.
#include <wchar.h> #include <wctype.h> #include <stdio.h> int main() { // Wide character to check wchar_t wc = L'A'; // Descriptor for alphabetic characters wctype_t desc = wctype("alpha"); // Use iswctype to check if the character has the property described by desc if (iswctype(wc, desc)) { wprintf(L"%lc is an alphabetic character.\n", wc); } else { wprintf(L"%lc is not an alphabetic character.\n", wc); } return 0; }
Output
Following is the output −
A is an alphabetic character.
Example 2
Let's create another c example and use the wctype() to create a desc (descriptor) of an alphanumeric character.
#include <wchar.h> #include <wctype.h> #include <stdio.h> int main() { // Wide character string to check wchar_t str[] = L"tutorialspoint12"; // Descriptor for alphanumeric characters wctype_t desc = wctype("alnum"); // Loop through each character in the string for (size_t i = 0; str[i] != L'\0'; ++i) { // Check if the character is alphanumeric if (iswctype(str[i], desc)) { wprintf(L"%lc is an alphanumeric character.\n", str[i]); } else { wprintf(L"%lc is not an alphanumeric character.\n", str[i]); } } return 0; }
Output
Following is the output −
t is an alphanumeric character. u is an alphanumeric character. t is an alphanumeric character. o is an alphanumeric character. r is an alphanumeric character. i is an alphanumeric character. a is an alphanumeric character. l is an alphanumeric character. s is an alphanumeric character. p is an alphanumeric character. o is an alphanumeric character. i is an alphanumeric character. n is an alphanumeric character. t is an alphanumeric character. 1 is an alphanumeric character. 2 is an alphanumeric character.
Example 3
This below example create a desc (descriptor) for a punctuation character. we then check whether wc is a punctuation character.
#include <wchar.h> #include <wctype.h> #include <stdio.h> int main() { wchar_t wc = L'#'; // checks if the character is a punctuation if (iswctype(wc, wctype("punct"))) wprintf(L"%lc is a punctuation\n", wc); else wprintf(L"%lc is not a punctuation\n", wc); return 0; }
Output
Following is the output −
# is a punctuation