ISALPHA - Linux手册页

时间:2019-08-20 18:00:39  来源:igfitidea点击:

Linux程序员手册 第3部分
更新日期: 2017-09-15

名称

isalnum,isalpha,isascii,isblank,iscntrl,isdigit,isgraph,islower,isprint,ispunct,isspace,isupper,isxdigit,isalnum_l,isalpha_l,isascii_l,isblank_l,iscntrl_1,isdigit_l,isgraph_l,isup_l,isup_l,ispun_l,isup_l, isxdigit_l-字符分类函数

语法

#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);

glibc的功能测试宏要求(请参阅feature_test_macros(7)):

isascii():

_XOPEN_SOURCE || / * Glibc自2.19起:* / -_DEFAULT_SOURCE || / * Glibc版本

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

说明

这些函数检查必须具有无符号char或EOF值的c是否根据指定的语言环境属于某个字符类。不带" _l"后缀的函数根据当前语言环境执行检查。

带" _l"后缀的函数根据语言环境对象语言环境指定的语言环境执行检查。如果语言环境是特殊语言环境对象LC_GLOBAL_LOCALE(请参见duplocale(3))或不是有效的语言环境对象句柄,则这些函数的行为是不确定的。

下面的列表说明了不带" _l"后缀的功能的操作;后缀" _l"的功能仅在使用语言环境对象语言环境而不是当前语言环境方面有所不同。

isalnum()
检查字母数字字符;它等效于(isalpha(c)|| isdigit(c))。
isalpha()
检查字母字符;在标准" C"语言环境中,它等效于(isupper(c)|| islower(c))。在某些语言环境中,可能存在isalpha()为true的其他字符-字母既不大写也不小写。
isascii()
检查c是否为适合ASCII字符集的7位无符号char值。
isblank()
检查是否有空白字符;即空格或制表符。
iscntrl()
检查控制字符。
isdigit()
检查数字(0到9)。
isgraph()
检查除空格以外的任何可打印字符。
islower()
检查小写字符。
isprint()
检查任何可打印字符,包括空格。
ispunct()
检查是否有任何非空格或字母数字字符的可打印字符。
isspace()
检查空格字符。在C和POSIX语言环境中,这些是:空格,换页(aq \ faq),换行(aq \ naq),回车(aq \ raq),水平制表符(aq \ taq)和垂直制表符(aq \ vaq)。
isupper()
检查大写字母。
isxdigit()
检查十六进制数字,即以下之一 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D EF。

返回值

如果字符c属于测试类,则返回的值非零,否则返回零。

版本

isalnum_l(),isalpha_l(),isblank_l(),iscntrl_l(),isdigit_l(),isgraph_l(),islower_l(),isprint_l(),ispunct_l(),isspace_l(),isupper_l(),isxdigit_l_()和isascii ()自glibc 2.3起可用。

属性

有关本节中使用的术语的说明,请参见attribute(7)。

InterfaceAttributeValue
isalnum(),isalpha(),isascii(),isblank(),iscntrl(),isdigit(),isgraph(),islower(),isprint(),ispunct(),isspace(),isupper(),isxdigit()Thread safetyMT-Safe

遵循规范

C89指定isalnum(),isalpha(),iscntrl(),isdigit(),isgraph(),islower(),isprint(),ispunct(),isspace(),isupper()和isxdigit(),但不是isascii ()和isblank()。 POSIX.1-2001还指定了这些函数,还指定了isascii()(作为XSI扩展)和isblank()。 C99指定除isascii()之外的所有前述函数。

POSIX.1-2008将isascii()标记为已过时,并指出它不能在本地化应用程序中移植使用。

POSIX.1-2008指定isalnum_l(),isalpha_l(),isblank_l(),iscntrl_l(),isdigit_l(),isgraph_l(),islower_l(),isprint_l(),ispunct_l(),isspace_l(),isupper_l(),和isxdigit_l()。

isascii_l()是GNU扩展。

备注

这些标准要求这些函数的参数c为EOF或以unsigned char类型表示的值。如果参数c为char类型,则必须将其强制转换为unsigned char,如以下示例所示:

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

这是必需的,因为char可能等效于有符号的char,在这种情况下,将转换为int时对设置了最高位的字节进行了符号扩展,其值超出了无符号char的范围。

哪些字符属于哪个类的详细信息取决于语言环境。例如,在默认的C语言环境中,isupper()不会将A-变音符(:A)识别为大写字母。

另外参见

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)

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/