Scroll to navigation

ISALPHA(3) Linux Programmer's 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 - 文字を分類する

書式

#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 since 2.19: */ _DEFAULT_SOURCE
|| /* Glibc versions <= 2.19: */ _SVID_SOURCE

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():

_XOPEN_SOURCE >= 700
_GNU_SOURCE

isascii_l():

_XOPEN_SOURCE >= 700 && (_SVID_SOURCE || _BSD_SOURCE)
_GNU_SOURCE

説明

これらの関数は、指定したロケールに従って c を分類する。 cunsigned charEOF でなければならない。 "_l" が後ろに付かない関数は現在のロケールに基づいてチェックを行う。

"_l" で終わる関数は、ロケールオブジェクト locale で指定されたロケールに基づいてチェックを行う。 locale が特別なロケールオブジェクト LC_GLOBAL_LOCALE (duplocale(3) 参照) の場合や、 locale が有効なオブジェクトロケールハンドルでない場合、 これらの関数の動作は未定義である。

以下のリストでは、 "_l" が後ろに付かない関数の動作を説明する。 "_l" で終わる関数は、現在のロケールではなく、ロケールオブジェクト locale を使う点だけが異なる。

英字または数字であるかを調べる。 (isalpha(c) || isdigit(c)) と等価である。
アルファベットかどうか調べる。標準の "C" ロケールでは (isupper(c) || islower(c)) と等価である。他のロケールでは、大文字でも小文字でもない他の文字でも isalpha() が true を返すことがある。
c が、ASCII文字セットに合致する 7ビットの unsigned char であるかを調べる。
空白文字 (スペースかタブ) であるかを調べる。
制御文字かどうかを調べる。
数字 (0〜9) かどうかを調べる。
表示可能な文字かどうかを調べる。スペースは含まれない。
小文字かどうかを調べる。
表示可能な文字かどうかを調べる。スペースも含まれる。
表示可能な文字かどうかを調べる。スペースと英数字は含まれない。
空白文字かどうかを調べる。 "C" ロケールか "POSIX" ロケールでは、空白文字とは、スペース、フォームフィード ('\f') 、改行(newline) ('\n') 、復帰(carriage return) ('\r') 、水平タブ ('\t') 、垂直タブ ('\v') である。
大文字かどうかを調べる。
16進数での数字かどうかを調べる。
0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F の文字であるかどうかを調べることと等価である。

返り値

文字 c が調べた文字の種類に合っていれば 0 以外を返す。 そうでなければ 0 を返す。

バージョン

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() は glibc 2.3 以降で利用可能である。

属性

この節で使用されている用語の説明については、 attributes(7) を参照。

インターフェース 属性
isalnum(), isalpha(), isascii(), isblank(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit() Thread safety MT-Safe

準拠

C89 では isalnum(), isalpha(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit() が規定されているが、 isascii() と isblank() は規定されていない。 POSIX.1-2001 でもこれらの関数は規定されており、isascii() と isblank() も規定されている (isascii() は XSI 拡張)。 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 拡張である。

注意

The standards require that the argument c for these functions is either EOF or a value that is representable in the type unsigned char. If the argument c is of type char, it must be cast to unsigned char, as in the following example:


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

This is necessary because char may be the equivalent of signed char, in which case a byte where the top bit is set would be sign extended when converting to int, yielding a value that is outside the range of unsigned char.

ある文字がどの種類に入るかということは、現在のロケールに依存する。 たとえば、デフォルトの C ロケールでは isupper() は 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)

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

2017-09-15 GNU