Copyright Digital Equipment Corp. All rights reserved.

Example

#include <locale.h>
#include <wchar.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>

 /* This test will set up a number of character class using wctype() */
 /* and then verify whether calls to iswctype() using these classes  */
 /* produce the same results as calls to the is**** routines.        */

main()
{

    wchar_t w_char;
    wctype_t ret_val;

    char *character = "A";

    /* Convert character to wide character format - w_char */

    if (mbtowc(&w_char, character, 1) == -1) {
        perror("mbtowc");
        exit(EXIT_FAILURE);
    }

    /* Check if results from iswalnum() matches check on */
    /* alnum character class                             */

    if ((iswalnum((wint_t) w_char)) &&
        (iswctype((wint_t) w_char, wctype("alnum"))))
        printf("[%C] is a member of the character class alnum\n", w_char);
 else
    printf("[%C] is not a member of the character class alnum\n", w_char);

    /* Check if results from iswalpha() matches check on */
    /* alpha character class                             */

    if ((iswalpha((wint_t) w_char)) &&
        (iswctype((wint_t) w_char, wctype("alpha"))))
   printf("[%C] is a member of the character class alpha\n", w_char);
    else
   printf("[%C] is not a member of the character class alpha\n", w_char);

    /* Check if results from iswcntrl() matches check on */
    /* cntrl character class                             */

    if ((iswcntrl((wint_t) w_char)) &&
        (iswctype((wint_t) w_char, wctype("cntrl"))))
    printf("[%C] is a member of the character class cntrl\n", w_char);
    else
   printf("[%C] is not a member of the character class cntrl\n", w_char);

    /* Check if results from iswdigit() matches check on */
    /* digit character class                             */

    if ((iswdigit((wint_t) w_char)) &&
        (iswctype((wint_t) w_char, wctype("digit"))))
    printf("[%C] is a member of the character class digit\n", w_char);
    else
   printf("[%C] is not a member of the character class digit\n", w_char);

    /* Check if results from iswgraph() matches check on */
    /* graph character class                             */

    if ((iswgraph((wint_t) w_char)) &&
        (iswctype((wint_t) w_char, wctype("graph"))))
        printf("[%C] is a member of the character class graph\n", w_char);
    else
   printf("[%C] is not a member of the character class graph\n", w_char);

    /* Check if results from iswlower() matches check on */
    /* lower character class                             */

    if ((iswlower((wint_t) w_char)) &&
        (iswctype((wint_t) w_char, wctype("lower"))))
        printf("[%C] is a member of the character class lower\n", w_char);
    else
   printf("[%C] is not a member of the character class lower\n", w_char);

    /* Check if results from iswprint() matches check on */
    /* print character class                             */

    if ((iswprint((wint_t) w_char)) &&
        (iswctype((wint_t) w_char, wctype("print"))))
        printf("[%C] is a member of the character class print\n", w_char);
    else
   printf("[%C] is not a member of the character class print\n", w_char);

    /* Check if results from iswpunct() matches check on */
    /* punct character class                             */

    if ((iswpunct((wint_t) w_char)) &&
        (iswctype((wint_t) w_char, wctype("punct"))))
        printf("[%C] is a member of the character class punct\n", w_char);
    else
   printf("[%C] is not a member of the character class punct\n", w_char);

    /* Check if results from iswspace() matches check on */
    /* space character class                             */

    if ((iswspace((wint_t) w_char)) &&
        (iswctype((wint_t) w_char, wctype("space"))))
        printf("[%C] is a member of the character class space\n", w_char);
    else
    printf("[%C] is not a member of the character class space\n", w_char);

    /* Check if results from iswupper() matches check on */
    /* upper character class                             */

    if ((iswupper((wint_t) w_char)) &&
        (iswctype((wint_t) w_char, wctype("upper"))))
        printf("[%C] is a member of the character class upper\n", w_char);
    else
    printf("[%C] is not a member of the character class upper\n", w_char);

    /* Check if results from iswxdigit() matches check on */
    /* xdigit character class                             */

    if ((iswxdigit((wint_t) w_char)) &&
        (iswctype((wint_t) w_char, wctype("xdigit"))))
        printf("[%C] is a member of the character class xdigit\n", w_char);
    else
   printf("[%C] is not a member of the character class xdigit\n", w_char);

}

   Running this example produces the following result:

   [A] is a member of the character class alnum
   [A] is a member of the character class alpha
   [A] is not a member of the character class cntrl
   [A] is not a member of the character class digit
   [A] is a member of the character class graph
   [A] is not a member of the character class lower
   [A] is a member of the character class print
   [A] is not a member of the character class punct
   [A] is not a member of the character class space
   [A] is a member of the character class upper
   [A] is a member of the character class xdigit