次の関数は文字分類に使用され、true の場合はゼロ以外の値を返し、false の場合は 0 を返します。isascii() 関数以外のすべての関数は、ロケールに依存します。特に、現在のロケールが LC_CTYPE カテゴリの場合はこれに該当します。
英字をテストします
英数字をテストします
7 ビットの US-ASCII 文字をテストします
空白文字をテストします
制御文字をテストします
10 進数をテストします
表示可能文字をテストします
小文字をテストします
出力可能文字をテストします
句読点文字をテストします
ホワイトスペース文字をテストします
大文字をテストします
16 進数をテストします
これらの関数は UTF-8 などのマルチバイトコードセットのロケールでは使用しないでください。マルチバイトコードセットには、次のセクションで説明するワード文字分類関数を使用します。
これらの関数の一部の動作は、コンパイル時に使用されたコンパイラオプションによっても異なります。isalpha()、isgraph()、isprint()、isxdigit() 関数の「デフォルト」および標準準拠の動作については、ctype(3C) のマニュアルページを参照してください。たとえば、isalpha() 関数は次のように定義されています。
任意の文字の isupper() または islower() が true であることをテストします。
任意の文字の isupper() または islower() が true であること、または現在のロケール定義の文字セットの 1 つである任意の文字の iscntrl()、isdigit()、ispunct()、または isspace() のどれも true でないことをテストします。C ロケールでは、isalpha() は、isupper() または islower() が true である文字に対してのみ true を返します。
ここには、アラビア語、ヘブライ語、タイ語など、大文字と小文字の区別がない (unicase とも呼ばれる) 言語またはアルファベットから生じる問題があります。ヘブライ語の従来のロケール he_IL.ISO8859-8 の aleph (0xE0) などのアルファベット文字の場合、関数 isupper() および islower() は常に false を返します。したがって、isalpha() 関数も常に false を返すことになります。コンパイラオプションが標準準拠の動作に対応している場合、isalpha() 関数はこうした文字に対して true を返します。詳細は、isalpha(3C) および standards(5) のマニュアルページを参照してください。
『Oracle Solaris Studio 12.3: C ユーザーガイド』と、ctype(3C) および SUSv3(5) のマニュアルページも参照してください。