文字種テスト関数isalpha
ヘッダ #include "ctype.h"
形 式 int isalpha(int c);
機 能 isalpha関数は、isupperもしくはislowerが真となる文字かどうか、またはiscntrl、isdigit、ispunctもしくはisspaceのどれもが真とならない処理系定義の文字集合の一つの文字かどうかを判定する。"C"ロケールでは、isalphaは、isupperまたはislowerが真となる文字に対してだけ真を返す。
返却値 判定が成立すれば0以外の値(真)を返し、成立しなければ0を返す。
■実装例■
static __inline__ int isalpha(int c)
{
return __ctype[c] & (_LOWER|_UPPER);
}
ctype.h ヘッダーの中で定義しておくべきことは
#define _CNTRL 0x01
#define _LOWER 0x02
#define _UPPER 0x04
#define _DIGIT 0x08
#define _PUNCT 0x10
#define _SPACE 0x20
#define _BLANK 0x40
#define _XDIGIT 0x80
...
と
const unsigned char __ctype_C[257] = { ... };
たとえば、ASCII codeの97は'a' ですので、__ctype_C[97] = 0x02
などとここで定義しておくのです。
[Quote]:
http://bohyoh.comhttp://libc.blog47.fc2.com/blog-entry-23.html