Klasyfikacja znaków
Każda z tych procedur sprawdza określony znak jednobajtowy, szeroki znak lub wielobajtowy znak w celu zaspokojenia warunku. (Zgodnie z definicją zestaw znaków ASCII z zakresu od 0 do 127 jest podzbiorem wszystkich zestawów znaków wielobajtowych. Na przykład japoński katakana zawiera znaki ASCII i inne niż ASCII.
Warunki testowe mają wpływ na ustawienie LC_CTYPE
ustawienia kategorii ustawień regionalnych. Aby uzyskać więcej informacji, zobacz setlocale
. Wersje tych funkcji bez sufiksu _l
używają bieżących ustawień regionalnych dla tego zachowania zależnego od ustawień regionalnych. Wersje z _l
sufiksem są identyczne, z tą różnicą, że używają parametru ustawień regionalnych przekazanych zamiast.
Zazwyczaj te procedury są wykonywane szybciej niż testy, które można napisać i powinny być preferowane. Na przykład poniższy kod wykonuje wolniej niż wywołanie metody isalpha(c)
:
if ((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z'))
return TRUE;
Procedury klasyfikacji znaków
Procedura | Warunek testu znaków |
---|---|
isalnum , iswalnum , , , _ismbcalpha _ismbcdigit _iswalnum_l _ismbcalnum _ismbcalnum_l _ismbcalpha_l _isalnum_l _ismbcdigit_l |
Alfanumeryczne |
_ismbcalnum , , _ismbcalnum_l , _ismbcalpha , _ismbcalpha_l , , _ismbcdigit _ismbcdigit_l |
Alfanumeryczne wielobajtowe |
isalpha , iswalpha , , , _ismbcalpha _ismbcdigit _iswalpha_l _ismbcalnum _ismbcalnum_l _ismbcalpha_l _isalpha_l _ismbcdigit_l |
Alfabetyczne |
isascii , , __isascii iswascii |
ASCII |
isblank , , iswblank , _isblank_l , _iswblank_l , , _ismbcsblank _ismbcsblank_l |
Puste (spacja lub karta pozioma) |
iscntrl , , iswcntrl , , _iscntrl_l _iswcntrl_l |
Kontrolka |
iscsym , iscsymf , , , __iscsymf _iscsymf_l __iswcsym __iswcsymf _iscsym_l _iswcsym_l __iscsym _iswcsymf_l |
Litera, podkreślenie lub cyfra |
iscsym , iscsymf , , , __iscsymf _iscsymf_l __iswcsym __iswcsymf _iscsym_l _iswcsym_l __iscsym _iswcsymf_l |
Litera lub podkreślenie |
isdigit , iswdigit , , , _ismbcalpha _ismbcdigit _iswdigit_l _ismbcalnum _ismbcalnum_l _ismbcalpha_l _isdigit_l _ismbcdigit_l |
Cyfry dziesiętne |
isgraph , iswgraph , , , _ismbcpunct_l _ismbcblank _ismbcblank_l _iswgraph_l _ismbcgraph_l _ismbcspace _ismbcgraph _ismbcprint _ismbcprint_l _ismbcpunct _isgraph_l _ismbcspace_l |
Drukowanie inne niż spacja |
islower , iswlower , , _islower_l , _iswlower_l _ismbclower , , _ismbclower_l , , _ismbcupper _ismbcupper_l |
Małe litery |
_ismbchira , , _ismbchira_l , , _ismbckata _ismbckata_l |
Hiragana |
_ismbchira , , _ismbchira_l , , _ismbckata _ismbckata_l |
Katakana |
_ismbclegal , , _ismbclegal_l , , _ismbcsymbol _ismbcsymbol_l |
Znak wielobajtowy |
_ismbcl0 , , _ismbcl0_l , _ismbcl1 , _ismbcl1_l , , _ismbcl2 _ismbcl2_l |
Znak wielobajtowy na poziomie Japonii |
_ismbcl0 , , _ismbcl0_l , _ismbcl1 , _ismbcl1_l , , _ismbcl2 _ismbcl2_l |
Znak wielobajtowy na poziomie Japonii |
_ismbcl0 , , _ismbcl0_l , _ismbcl1 , _ismbcl1_l , , _ismbcl2 _ismbcl2_l |
Znak wielobajtowy na poziomie Japonii |
_ismbclegal , , _ismbclegal_l , , _ismbcsymbol _ismbcsymbol_l |
Znak wielobajtowy inny niż alfanumeryczny |
isprint , iswprint , , , _ismbcpunct_l _ismbcblank _ismbcblank_l _iswprint_l _ismbcgraph_l _ismbcspace _ismbcgraph _ismbcprint _ismbcprint_l _ismbcpunct _isprint_l _ismbcspace_l |
Drukowalny |
ispunct , iswpunct , , , _ismbcpunct_l _ismbcblank _ismbcblank_l _iswpunct_l _ismbcgraph_l _ismbcspace _ismbcgraph _ismbcprint _ismbcprint_l _ismbcpunct _ispunct_l _ismbcspace_l |
Znaki interpunkcyjne |
isspace , iswspace , , , _ismbcpunct_l _ismbcblank _ismbcblank_l _iswspace_l _ismbcgraph_l _ismbcspace _ismbcgraph _ismbcprint _ismbcprint_l _ismbcpunct _isspace_l _ismbcspace_l |
Białe znaki |
isupper , , iswupper , _ismbclower , _ismbclower_l , , _ismbcupper _ismbcupper_l |
Wielkie litery |
_isctype , , iswctype , , _isctype_l _iswctype_l |
Właściwość określona przez desc argument |
isxdigit , , iswxdigit , , _isxdigit_l _iswxdigit_l |
Cyfra szesnastkowa |
_mbclen , , mblen _mblen_l |
Zwracana długość prawidłowego znaku wielobajtowego; wynik zależy LC_CTYPE od ustawienia kategorii bieżących ustawień regionalnych |
Zobacz też
Procedury czasu wykonywania języka Universal C według kategorii