www.LinuxHowtos.org
isalpha
Section: C Library Functions (3)Updated: 202-0-08
Index Return to Main 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 functionsLIBRARY
Standard C library (libc,~-lc)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 >= 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 [dq]C[dq] locale, it is equivalent to (isupper(c) || islower(c)). In some locales, there may be additional characters for which isalpha() is true[em]letters which are neither uppercase nor lowercase.
- isascii()
- checks whether c is a -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 whit-space characters. In the [dq]C[dq] and [dq]POSIX[dq] locales, these are: space, for-feed ([aq][rs]f[aq]), newline ([aq][rs]n[aq]), carriage return ([aq][rs]r[aq]), horizontal tab ([aq][rs]t[aq]), and vertical tab ([aq][rs]v[aq]).
- 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.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 | M-Safe |
STANDARDS
- isalnum()
- isalpha() iscntrl() isdigit() isgraph() islower() isprint() ispunct() isspace() isupper() isxdigit() isblank() C11, POSIX.-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.-2008.
- isascii_l()
- GNU.
HISTORY
- isalnum()
- isalpha() iscntrl() isdigit() isgraph() islower() isprint() ispunct() isspace() isupper() isxdigit() C89, POSIX.-2001.
- isblank()
- C99, POSIX.-2001.
- isascii()
- POSIX.-2001 (XSI).
- POSIX.-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.-2008.
- isascii_l()
- glibc 2.3.
CAVEATS
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 -umlaut (:A) 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)