Deklaracja #include

int isalnum(int c); int isalpha(int c); int isblank(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);

Argumenty c wartość znaku reprezentowana w jako typ unsigned char lub wartość makra EOF. Z tego powodu, przed przekazaniem funkcji argumentu typu char lub signed char należy go zrzutować na typ unsigned char lub unsigned int.

Opis Funkcje sprawdzają czy podany znak spełnia jakiś konkretny warunek. Biorąc pod uwagę ustawienia języka i dla różnych znaków w różnych locale'ach mogą zwracać różne wartości.

isalnum sprawdza czy znak jest liczbą lub literą, isalpha sprawdza czy znak jest literą, isblank sprawdza czy znak jest znakiem odstępu służącym do oddzielania wyrazów (standardowymi znakami odstępu są spacja i znak tabulacji), iscntrl sprawdza czy znak jest znakiem sterującym, isdigit sprawdza czy znak jest cyfrą dziesiętna, isgraph sprawdza czy znak jest znakiem drukowalnym różnym od spacji, islower sprawdza czy znak jest małą literą, isprint sprawdza czy znak jest znakiem drukowalnym (włączając w to spację), ispunct sprawdza czy znak jest znakiem przestankowym, dla którego ani isspace ani isalnum nie są prawdziwe (standardowo są to wszystkie znaki drukowalne, dla których te funkcje zwracają zero), isspace sprawdza czy znak jest tzw. białym znakiem (standardowymi białymi znakami są: spacja, wysunięcie strony '\f', znak przejścia do nowej linii '\n', znak powrotu karetki '\r', tabulacja pozioma '\t' i tabulacja pionowa '\v'), isupper sprawdza czy znak jest dużą literą, isxdigit sprawdza czy znak jest cyfrą szesnastkową, tj. cyfrą dziesiętną lub literą od 'a' do 'f' niezależnie od wielkości.

Funkcja isblank nie występowała w oryginalnym standardzie ANSI C z 1989 roku (tzw. C89) i została dodana dopiero w nowszym standardzie z 1999 roku (tzw. C99).

Wartość zwracana Liczba niezerowa gdy podany argument spełnia konkretny warunek, w przeciwnym wypadku - zero.

Przykład użycia #include // funkcje is* #include // setlocale #include // printf i scanf

void identify_char(unsigned char c) { printf(" Litera lub cyfra: %s\n", isalnum (c) ? "tak" : "nie"); #if __STDC_VERSION__ >= 199901L // w przypadku standardu C99 printf(" Odstęp: %s\n", isblank (c) ? "tak" : "nie"); #endif printf(" Znak sterujący: %s\n", iscntrl (c) ? "tak" : "nie"); printf(" Cyfra dziesiętna: %s\n", isdigit (c) ? "tak" : "nie"); printf(" Graficzny: %s\n", isgraph (c) ? "tak" : "nie"); printf(" Mała litera: %s\n", islower (c) ? "tak" : "nie"); printf(" Drukowalny: %s\n", isprint (c) ? "tak" : "nie"); printf(" Przestankowy: %s\n", ispunct (c) ? "tak" : "nie"); printf(" Biały znak: %s\n", isspace (c) ? "tak" : "nie"); printf(" Wielka litera: %s\n", isupper (c) ? "tak" : "nie"); printf(" Cyfra szesnastkowa: %s\n", isxdigit(c) ? "tak" : "nie"); printf(" Litera: %s\n", isalpha (c) ? "tak" : "nie");

int main() { unsigned char c;

puts("Naciśnij jakiś klawisz."); if (scanf("%c", &c) == 1)

identify_char(c); setlocale(LC_ALL, "pl_PL"); // przystosowanie do warunków polskich puts("Po zmianie ustawien jezyka:"); identify_char(c);

return 0; }

Zobacz też tolower, toupper