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 - funkcje klasyfikujące znaki

Standardowa biblioteka C (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);
Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

isascii():

    _XOPEN_SOURCE
        || /* glibc >= 2.19: */ _DEFAULT_SOURCE
        || /* glibc <= 2.19: */ _SVID_SOURCE

isblank():

    _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L

salnum_l(), salpha_l(), sblank_l(), scntrl_l(), sdigit_l(), sgraph_l(), slower_l(), sprint_l(), spunct_l(), sspace_l(), supper_l(), sxdigit_l():

    Od glibc 2.10:
        _XOPEN_SOURCE >= 700
    Przed glibc 2.10:
        _GNU_SOURCE

isascii_l():

    Od glibc 2.10:
        _XOPEN_SOURCE >= 700 && (_SVID_SOURCE || _BSD_SOURCE)
    Przed glibc 2.10:
        _GNU_SOURCE

Funkcje te sprawdzają, czy c, które jest zmienną typu unsigned char lub wartością EOF, należy do pewnej klasy znaków określonej przez określone ustawienia regionalne (locale). Funkcje bez przyrostka "_l" przeprowadzają sprawdzenie w oparciu o bieżące locale.

Funkcje z przyrostkiem "_l" przeprowadzają sprawdzenie w oparciu o ustawienia regionalne określone przez obiekt locale locale. Ich zachowanie jest niezdefiniowane, jeśli locale nie jest specjalnym obiektem locale LC_GLOBAL_LOCALE (zob. duplocale(3)) albo nie jest prawidłowym uchwytem obiektu locale.

Poniższa lista wyjaśnia działanie funkcji bez przyrostka "_l". Funkcje z przyrostkiem "_l" różnią się wyłącznie tym, że używają obiekt locale locale, zamiast ustawień bieżących.

sprawdza, czy znak jest alfanumeryczny; jest to równoważne (isalpha(c) || isdigit(c)).
sprawdza, czy znak jest alfabetyczny; w standardowych ustawieniach regionalnych "C" jest to równoważne (isupper(c) || islower(c)). W niektórych ustawieniach językowych do klasy tej mogą należeć dodatkowe znaki, dla których isalpha() jest prawdziwe — litery, które nie są ani wielkie, ani małe.
sprawdza, czy c jest 7-bitową zmienną unsigned char, która należy do zbioru znaków ASCII.
sprawdza, czy znak jest pusty, czyli czy jest to spacja lub tabulacja.
sprawdza, czy znak jest znakiem sterującym.
sprawdza, czy jest to cyfra (0 do 9).
sprawdza, czy jest to jakikolwiek znak drukowalny oprócz spacji.
sprawdza, czy znak jest małą literą.
sprawdza, czy znak jest drukowalny (łącznie ze spacją).
sprawdza, czy znak jest drukowalny i nie jest spacją lub znakiem alfanumerycznym.
sprawdza, czy znak jest białym znakiem. W ustawieniach regionalnych „C” i „POSIX” są to: spacja, wysuw strony (form-feed, „\f”), nowy wiersz, („\n”)), powrót karetki („\r”), tabulacja pozioma („\t”) i tabulacja pionowa („\v”).
sprawdza, czy znak jest wielką literą.
sprawdza, czy znak jest cyfrą szesnastkową, czyli czy jest jednym z
0 1 2 3 4 5 6 7 8 9 0 a b c d e f A B C D E F.

Zwracana jest wartość niezerowa, jeśli znak c należy do sprawdzanej klasy, a zero jeśli nie należy.

Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).

Interfejs Atrybut Wartość
isalnum(), isalpha(), isascii(), isblank(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit() Bezpieczeństwo wątkowe MT-bezpieczne

C11, POSIX.1-2008.
POSIX.1-2008.
GNU.

C89, POSIX.1-2001.
C99, POSIX.1-2001.
POSIX.1-2001 (XSI).
POSIX.1-2008 oznacza ją jako przestarzałą, zauważając, że nie może być używana w sposób przenośny w aplikacji obsługującej ustawienia regionalne.
glibc 2.3. POSIX.1-2008.
glibc 2.3.

Standard wymaga, aby argumentem c tych funkcji było albo EOF, albo wartość reprezentowalna w typie unsigned char, w innym przypadku zachowanie jest niezdefiniowane. Jeśli argument c ma typ char, musi rzutować na unsigned char, jak w poniższym przykładzie:


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

Jest to konieczne, ponieważ char może być odpowiednikiem signed char; w takim przypadku bajt, w którym górny bit jest ustawiony, przy konwersji do int, miałby swój znak rozszerzony, co dałoby wartość poza zakresem unsigned char.

Szczegóły tego, które znaki należą do której klasy, zależą od ustawień regionalnych (locale). Np. isupper() nie rozpozna A-umlaut (Ä) jako wielkiej litery w domyślnym ustawieniu regionalnym "C".

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)

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl>, Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.

2 maja 2024 r. Linux man-pages 6.8