|
NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUE | ATTRIBUTES | STANDARDS | HISTORY | CAVEATS | SEE ALSO | COLOPHON |
|
|
|
isalpha(3) Library Functions Manual isalpha(3)
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
Standard C library (libc, -lc)
#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 >= 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
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.
The values returned are nonzero if the character c falls into the
tested class, and zero if not.
For an explanation of the terms used in this section, see
attributes(7).
┌──────────────────────────────────────┬───────────────┬─────────┐
│ Interface │ Attribute │ Value │
├──────────────────────────────────────┼───────────────┼─────────┤
│ isalnum(), isalpha(), isascii(), │ Thread safety │ MT-Safe │
│ isblank(), iscntrl(), isdigit(), │ │ │
│ isgraph(), islower(), isprint(), │ │ │
│ ispunct(), isspace(), isupper(), │ │ │
│ isxdigit() │ │ │
└──────────────────────────────────────┴───────────────┴─────────┘
isalnum()
isalpha()
iscntrl()
isdigit()
isgraph()
islower()
isprint()
ispunct()
isspace()
isupper()
isxdigit()
isblank()
C11, POSIX.1-2008.
isascii()
isalnum_l()
isalpha_l()
isblank_l()
iscntrl_l()
isdigit_l()
isgraph_l()
islower_l()
isprint_l()
ispunct_l()
isspace_l()
isupper_l()
isxdigit_l()
POSIX.1-2008.
isascii_l()
GNU.
isalnum()
isalpha()
iscntrl()
isdigit()
isgraph()
islower()
isprint()
ispunct()
isspace()
isupper()
isxdigit()
C89, POSIX.1-2001.
isblank()
C99, POSIX.1-2001.
isascii()
POSIX.1-2001 (XSI).
POSIX.1-2008 marks it as obsolete, noting that it cannot be
used portably in a localized application.
isalnum_l()
isalpha_l()
isblank_l()
iscntrl_l()
isdigit_l()
isgraph_l()
islower_l()
isprint_l()
ispunct_l()
isspace_l()
isupper_l()
isxdigit_l()
glibc 2.3. POSIX.1-2008.
isascii_l()
glibc 2.3.
The standards require that the argument c for these functions is
either EOF or a value that is representable in the type unsigned
char; otherwise, the behavior is undefined. 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.
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)
This page is part of the man-pages (Linux kernel and C library
user-space interface documentation) project. Information about
the project can be found at
⟨https://www.kernel.org/doc/man-pages/⟩. If you have a bug report
for this manual page, see
⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.
This page was obtained from the tarball man-pages-6.15.tar.gz
fetched from
⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on
2025-08-11. If you discover any rendering problems in this HTML
version of the page, or you believe there is a better or more up-
to-date source for the page, or you have corrections or
improvements to the information in this COLOPHON (which is not
part of the original manual page), send a mail to
man-pages@man7.org
Linux man-pages 6.15 2025-05-17 isalpha(3)
Pages that refer to this page: bash(1), PR_SET_VMA(2const), getopt(3), iswalnum(3), iswalpha(3), iswblank(3), iswcntrl(3), iswdigit(3), iswgraph(3), iswlower(3), iswprint(3), iswpunct(3), iswspace(3), iswupper(3), iswxdigit(3), localeconv(3), setlocale(3), sscanf(3), strtod(3), strtol(3), strtoul(3), toascii(3), toupper(3), wctype(3), bpf-helpers(7), locale(7), lsof(8)