Manpages - isalpha.3

Table of Contents

NAME

isalnum, isalpha, isascii, isblank, iscntrl, isdigit, isgraph, islower, isprint, ispunct, isspace, isupper, isxdigit, isalnum_l, isalpha_l, isascii_l, isblank_l, iscntrl_l, isdigit_l, isgraph_l, islower_l, isprint_l, ispunct_l, isspace_l, isupper_l, isxdigit_l - character classification functions

SYNOPSIS

  #include <ctype.h>

  int isalnum(int c);
  int isalpha(int c);
  int iscntrl(int c);
  int isdigit(int c);
  int isgraph(int c);
  int islower(int c);
  int isprint(int c);
  int ispunct(int c);
  int isspace(int c);
  int isupper(int c);
  int isxdigit(int c);

  int isascii(int c);
  int isblank(int c);

  int isalnum_l(int c, locale_t locale);
  int isalpha_l(int c, locale_t locale);
  int isblank_l(int c, locale_t locale);
  int iscntrl_l(int c, locale_t locale);
  int isdigit_l(int c, locale_t locale);
  int isgraph_l(int c, locale_t locale);
  int islower_l(int c, locale_t locale);
  int isprint_l(int c, locale_t locale);
  int ispunct_l(int c, locale_t locale);
  int isspace_l(int c, locale_t locale);
  int isupper_l(int c, locale_t locale);
  int isxdigit_l(int c, locale_t locale);

  int isascii_l(int c, locale_t locale);

Feature Test Macro Requirements for glibc (see *feature_test_macros*(7)):

*isascii*():

      _XOPEN_SOURCE
          || /* Glibc since 2.19: */ _DEFAULT_SOURCE
          || /* Glibc <= 2.19: */ _SVID_SOURCE

*isblank*():

      _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L

*isalnum_l*(), *isalpha_l*(), *isblank_l*(), *iscntrl_l*(), *isdigit_l*(), *isgraph_l*(), *islower_l*(), *isprint_l*(), *ispunct_l*(), *isspace_l*(), *isupper_l*(), *isxdigit_l*():

      Since glibc 2.10:
          _XOPEN_SOURCE >= 700
      Before glibc 2.10:
          _GNU_SOURCE

*isascii_l*():

      Since glibc 2.10:
          _XOPEN_SOURCE >= 700 && (_SVID_SOURCE || _BSD_SOURCE)
      Before glibc 2.10:
          _GNU_SOURCE

DESCRIPTION

These functions check whether c, which must have the value of an unsigned char or EOF, falls into a certain character class according to the specified locale. The functions without the “_l” suffix perform the check based on the current locale.

The functions with the “_l” suffix perform the check based on the locale specified by the locale object locale. The behavior of these functions is undefined if locale is the special locale object LC_GLOBAL_LOCALE (see *duplocale*(3)) or is not a valid locale object handle.

The list below explains the operation of the functions without the “_l” suffix; the functions with the “_l” suffix differ only in using the locale object locale instead of the current locale.

*isalnum*()
checks for an alphanumeric character; it is equivalent to (isalpha(*/c/) || isdigit(c))*/./
*isalpha*()
checks for an alphabetic character; in the standard “C” locale, it is equivalent to (isupper(*/c/) || islower(c))*/./ In some locales, there may be additional characters for which *isalpha*() is true—letters which are neither uppercase nor lowercase.
*isascii*()
checks whether c is a 7-bit unsigned char value that fits into the ASCII character set.
*isblank*()
checks for a blank character; that is, a space or a tab.
*iscntrl*()
checks for a control character.
*isdigit*()
checks for a digit (0 through 9).
*isgraph*()
checks for any printable character except space.
*islower*()
checks for a lowercase character.
*isprint*()
checks for any printable character including space.
*ispunct*()
checks for any printable character which is not a space or an alphanumeric character.
*isspace*()
checks for white-space characters. In the “C” and “POSIX” locales, these are: space, form-feed (’\f’), newline (’\n’), carriage return (’\r’), horizontal tab (’\t’), and vertical tab (’\v’).
*isupper*()
checks for an uppercase letter.
*isxdigit*()
checks for hexadecimal digits, that is, one of
0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F.

RETURN VALUE

The values returned are nonzero if the character c falls into the tested class, and zero if not.

VERSIONS

*isalnum_l*(), *isalpha_l*(), *isblank_l*(), *iscntrl_l*(), *isdigit_l*(), *isgraph_l*(), *islower_l*(), *isprint_l*(), *ispunct_l*(), *isspace_l*(), *isupper_l*(), *isxdigit_l*(), and *isascii_l*() are available since glibc 2.3.

ATTRIBUTES

For an explanation of the terms used in this section, see *attributes*(7).

Interface Attribute Value
*isalnum*(), *isalpha*(), *isascii*(), *isblank*(), *iscntrl*(), *isdigit*(), *isgraph*(), *islower*(), *isprint*(), *ispunct*(), *isspace*(), *isupper*(), *isxdigit*() Thread safety MT-Safe

CONFORMING TO

C89 specifies *isalnum*(), *isalpha*(), *iscntrl*(), *isdigit*(), *isgraph*(), *islower*(), *isprint*(), *ispunct*(), *isspace*(), *isupper*(), and *isxdigit*(), but not *isascii*() and *isblank*(). POSIX.1-2001 also specifies those functions, and also *isascii*() (as an XSI extension) and *isblank*(). C99 specifies all of the preceding functions, except *isascii*().

POSIX.1-2008 marks *isascii*() as obsolete, noting that it cannot be used portably in a localized application.

POSIX.1-2008 specifies *isalnum_l*(), *isalpha_l*(), *isblank_l*(), *iscntrl_l*(), *isdigit_l*(), *isgraph_l*(), *islower_l*(), *isprint_l*(), *ispunct_l*(), *isspace_l*(), *isupper_l*(), and *isxdigit_l*().

*isascii_l*() is a GNU extension.

NOTES

The standards require that the argument c for these functions is either EOF or a value that is representable in the type unsigned char. If the argument c is of type char, it must be cast to unsigned char, as in the following example:

  char c;
  ...
  res = toupper((unsigned char) c);

This is necessary because char may be the equivalent of signed char, in which case a byte where the top bit is set would be sign extended when converting to int, yielding a value that is outside the range of unsigned char.

The details of what characters belong to which class depend on the locale. For example, isupper*() will not recognize an A-umlaut (Ä) as an uppercase letter in the default *C locale.

SEE ALSO

*iswalnum*(3), *iswalpha*(3), *iswblank*(3), *iswcntrl*(3), *iswdigit*(3), *iswgraph*(3), *iswlower*(3), *iswprint*(3), *iswpunct*(3), *iswspace*(3), *iswupper*(3), *iswxdigit*(3), *newlocale*(3), *setlocale*(3), *toascii*(3), *tolower*(3), *toupper*(3), *uselocale*(3), *ascii*(7), *locale*(7)

COLOPHON

This page is part of release 5.13 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.

Author: dt

Created: 2022-02-20 Sun 16:26