Klasifikace znaků
Každá z těchto rutin testuje zadaný jednobajtový znak, široký znak nebo vícebajtový znak pro spokojenost podmínky. (Podle definice je znaková sada ASCII mezi 0 a 127 podmnožinou všech vícebajtových znakových sad. Například japonská katakana obsahuje znaky ASCII i jiné znaky než ASCII.)
Testovací podmínky jsou ovlivněny nastavením LC_CTYPE
nastavení kategorie národního prostředí. Další informace najdete na webu setlocale
. Verze těchto funkcí bez _l
přípony používají aktuální národní prostředí pro toto chování závislé na národním prostředí. Verze s _l
příponou jsou shodné s tím rozdílem, že místo toho používají předaný parametr národního prostředí.
Obecně platí, že tyto rutiny se spouštějí rychleji než testy, které byste mohli napsat a měly by být upřednostňovány. Například následující kód spustí pomalejší než volání isalpha(c)
:
if ((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z'))
return TRUE;
Rutiny klasifikace znaků
Rutina | Podmínka testu znaků |
---|---|
isalnum , iswalnum , , _isalnum_l , _ismbcalnum _iswalnum_l , _ismbcalnum_l _ismbcalpha _ismbcalpha_l , , _ismbcdigit _ismbcdigit_l |
Alfanumerické |
_ismbcalnum , _ismbcalnum_l , _ismbcalpha , _ismbcalpha_l , , _ismbcdigit _ismbcdigit_l |
Vícebajtové alfanumerické znaky |
isalpha , iswalpha , , _isalpha_l , _ismbcalnum _iswalpha_l , _ismbcalnum_l _ismbcalpha _ismbcalpha_l , , _ismbcdigit _ismbcdigit_l |
Abecedy |
isascii , , __isascii iswascii |
ASCII |
isblank , iswblank , _isblank_l , _iswblank_l , , _ismbcsblank _ismbcsblank_l |
Prázdné (mezera nebo vodorovná karta) |
iscntrl , iswcntrl , , _iscntrl_l _iswcntrl_l |
Ovládací prvek |
iscsym , iscsymf , , __iscsym , __iscsymf __iswcsym , __iswcsymf _iscsym_l _iswcsym_l , , _iscsymf_l _iswcsymf_l |
Písmeno, podtržítko nebo číslice |
iscsym , iscsymf , , __iscsym , __iscsymf __iswcsym , __iswcsymf _iscsym_l _iswcsym_l , , _iscsymf_l _iswcsymf_l |
Písmeno nebo podtržítko |
isdigit , iswdigit , , _isdigit_l , _ismbcalnum _iswdigit_l , _ismbcalnum_l _ismbcalpha _ismbcalpha_l , , _ismbcdigit _ismbcdigit_l |
Desítková číslice |
isgraph , iswgraph , , _isgraph_l , , _ismbcspace _ismbcblank_l _iswgraph_l _ismbcgraph _ismbcgraph_l _ismbcprint _ismbcprint_l _ismbcpunct _ismbcpunct_l _ismbcblank _ismbcspace_l |
Tisknutelný jiný než mezera |
islower , iswlower , _islower_l , , _iswlower_l _ismbclower , _ismbclower_l , , _ismbcupper _ismbcupper_l |
Malá písmena |
_ismbchira , _ismbchira_l , , _ismbckata _ismbckata_l |
Hiragana |
_ismbchira , _ismbchira_l , , _ismbckata _ismbckata_l |
Katakana |
_ismbclegal , _ismbclegal_l , , _ismbcsymbol _ismbcsymbol_l |
Právní vícebajtový znak |
_ismbcl0 , _ismbcl0_l , _ismbcl1 , _ismbcl1_l , , _ismbcl2 _ismbcl2_l |
Vícebajtový znak na úrovni Japonska |
_ismbcl0 , _ismbcl0_l , _ismbcl1 , _ismbcl1_l , , _ismbcl2 _ismbcl2_l |
Vícebajtový znak japonské úrovně 1 |
_ismbcl0 , _ismbcl0_l , _ismbcl1 , _ismbcl1_l , , _ismbcl2 _ismbcl2_l |
Vícebajtový znak japonské úrovně 2 |
_ismbclegal , _ismbclegal_l , , _ismbcsymbol _ismbcsymbol_l |
Neal alfanumerické vícebajtové znaky |
isprint , iswprint , , _isprint_l , , _ismbcspace _ismbcblank_l _iswprint_l _ismbcgraph _ismbcgraph_l _ismbcprint _ismbcprint_l _ismbcpunct _ismbcpunct_l _ismbcblank _ismbcspace_l |
Tisknutelný |
ispunct , iswpunct , , _ispunct_l , , _ismbcspace _ismbcblank_l _iswpunct_l _ismbcgraph _ismbcgraph_l _ismbcprint _ismbcprint_l _ismbcpunct _ismbcpunct_l _ismbcblank _ismbcspace_l |
Interpunkční znaménka |
isspace , iswspace , , _isspace_l , , _ismbcspace _ismbcblank_l _iswspace_l _ismbcgraph _ismbcgraph_l _ismbcprint _ismbcprint_l _ismbcpunct _ismbcpunct_l _ismbcblank _ismbcspace_l |
Prázdné znaky |
isupper , iswupper , _ismbclower , _ismbclower_l , , _ismbcupper _ismbcupper_l |
Velká písmena |
_isctype , iswctype , , _isctype_l _iswctype_l |
Vlastnost zadaná argumentem desc |
isxdigit , iswxdigit , , _isxdigit_l _iswxdigit_l |
Šestnáctková číslice |
_mbclen , , mblen _mblen_l |
Návratová délka platného vícebajtového znaku; výsledek závisí na LC_CTYPE nastavení kategorie aktuálního národního prostředí. |