7.4.3 <ctype.h>

文字に対して、その種類の判定や変換を行います。

種別

定義名

説明

関数

isalnum

英字または10進数字かどうかを判定します。

isalpha

英字かどうかを判定します。

iscntrl

制御文字かどうかを判定します。

isdigit

10進数字かどうかを判定します。

isgraph

空白を除く印字文字かどうかを判定します。

islower

英小文字かどうかを判定します。

isprint

空白を含む印字文字かどうかを判定します。

ispunct

特殊文字かどうかを判定します。

isspace

空白類文字かどうかを判定します。

isupper

英大文字かどうかを判定します。

isxdigit

16進数字かどうかを判定します。

tolower

英大文字を英小文字に変換します。

toupper

英小文字を英大文字に変換します。

isblank <-lang=c99>

空白文字またはタブ文字かを判定します。

上記の関数において、入力パラメータの値がunsigned char型で表現できる範囲に含まれず、なおかつEOFでない場合、その関数の動作は保証しません。

文字の種類の一覧を表 7.6に示します。

表 7.6

文字の種類

 

文字の種類

内容

1

英大文字

以下の26文字のいずれかの文字です。

'A'、'B'、'C'、'D'、'E'、'F'、'G'、'H'、'I'、'J'、'K'、'L'、'M'、

'N'、'O'、'P'、'Q'、'R'、'S'、'T'、'U'、'V'、'W'、'X'、'Y'、'Z'

2

英小文字

以下の26文字のいずれかの文字です。

'a'、'b'、'c'、'd'、'e'、'f'、'g'、'h'、'i'、'j'、'k'、'l'、'm'、

'n'、'o'、'p'、'q'、'r'、's'、't'、'u'、'v'、'w'、'x'、'y'、'z'

3

英字

英大文字と英小文字のいずれかの文字です。

4

10進数字

以下の10文字のいずれかの文字です。

'0'、'1'、'2'、'3'、'4'、'5'、'6'、'7'、'8'、'9'

5

印字文字

空白(' ')を含む、ディスプレイ上に表示される文字のことです。

ASCIIコードの0x20〜0x7Eに対応します。

6

制御文字

印字文字以外の文字のことです。

7

空白類文字

以下の6文字のいずれかの文字です。

空白(' ')、書式送り('\f')、改行('\n')、復帰('\r')、水平タブ('\t')、垂直タブ('\v')

8

16進数字

以下の22文字のいずれかの文字です。

'0'、'1'、'2'、'3'、'4'、'5'、'6'、'7'、'8'、'9'、

'A'、'B'、'C'、'D'、'E'、'F'、'a'、'b'、'c'、'd'、'e'、'f'

9

特殊文字

空白(' ')、英字、および10進数字を除く任意の印字文字のことです。

10

ブランク文字

以下の2文字のいずれかの文字です。

空白(‘ ‘)、水平タブ(“\t’)

処理系定義仕様

 

項目

コンパイラの仕様

1

isalnum関数、isalpha関数、iscntrl関数、islower関数、isprint関数およびisupper関数によってテストされる文字集合

unsigned char型(0〜255)およびEOF(-1)です。判定の結果、真になる文字を表 7.7に示します。

表 7.7

真となる文字の集合

 

関数名

真となる文字

1

isalnum

'0'〜'9', 'A'〜'Z', 'a'〜'z'

2

isalpha

'A'〜'Z', 'a'〜'z'

3

iscntrl

'\x00'〜'\x1f', '\x7f'

4

islower

'a'〜'z'

5

isprint

'\x20'〜'\x7E'

6

isupper

'A'〜'Z'

isalnum

文字が英字または10進数字であるかどうか判定します。

 

[指定形式]

#include <ctype.h>

long isalnum(long c);

 

[引数]

c  判定する文字

 

[戻り値]

文字cが英字または10進数字の時 :0以外

文字cが英字または10進数字以外の時 :0

 

isalpha

文字が英字であるかどうか判定します。

 

[指定形式]

#include <ctype.h>

long isalpha(long c);

 

[引数]

c  判定する文字

 

[戻り値]

文字cが英字の時 :0以外

文字cが英字以外の時 :0

 

iscntrl

文字が制御文字であるかどうか判定します。

 

[指定形式]

#include <ctype.h>

long iscntrl(long c);

[引数]

c  判定する文字

 

[戻り値]

文字cが制御文字の時 :0以外

文字cが制御文字以外の時 :0

 

isdigit

文字が10進数字であるかどうか判定します。

 

[指定形式]

#include <ctype.h>

long isdigit(long c);

 

[引数]

c  判定する文字

 

[戻り値]

文字cが10進数字の時 :0以外

文字cが10進数字以外の時 :0

 

isgraph

文字が空白(' ')を除く任意の印字文字かどうかを判定します。

 

[指定形式]

#include <ctype.h>

long isgraph(long c);

 

[引数]

c  判定する文字

 

[戻り値]

文字cが空白を除く印字文字の時 :0以外

文字cが空白を除く印字文字以外の時 :0

 

islower

文字が英小文字であるかどうか判定します。

 

[指定形式]

#include <ctype.h>

long islower(long c);

 

[引数]

c  判定する文字

 

[戻り値]

文字cが英小文字の時 :0以外

文字cが英小文字以外の時 :0

 

isprint

文字が空白文字(' ')を含む印字文字であるかどうか判定します。

 

[指定形式]

#include <ctype.h>

long isprint(long c);

 

[引数]

c  判定する文字

 

[戻り値]

文字cが空白文字を含む印字文字の時 :0以外

文字cが空白文字を含む印字文字以外の時 :0

 

ispunct

文字が特殊文字であるかどうか判定します。

 

[指定形式]

#include <ctype.h>

long ispunct(long c);

 

[引数]

c  判定する文字

 

[戻り値]

文字cが特殊文字の時 :0以外

文字cが特殊文字以外の時 :0

 

isspace

文字が空白類文字であるかどうか判定します。

 

[指定形式]

#include <ctype.h>

long isspace(long c);

 

[引数]

c  判定する文字

 

[戻り値]

文字cが空白類文字の時 :0以外

文字cが空白類文字以外の時 :0

 

isupper

文字が英大文字であるかどうか判定します。

 

[指定形式]

#include <ctype.h>

long isupper(long c);

 

[引数]

c  判定する文字

 

[戻り値]

文字cが英大文字の時 :0以外

文字cが英大文字以外の時 :0

 

isxdigit

文字が16進数字かどうか判定します。

 

[指定形式]

#include <ctype.h>

long isxdigit(long c)

 

[引数]

c  判定する文字

 

[戻り値]

文字cが16進数字の時 :0以外

文字cが16進数字以外の時 :0

 

tolower

英大文字を対応する英小文字に変換します。

 

[指定形式]

#include <ctype.h>

long tolower(long c);

 

[引数]

c  変換する文字

 

[戻り値]

文字cが英大文字の時 :文字cに対応する英小文字

文字cが英大文字以外の時 :文字c

 

toupper

英小文字を対応する英大文字に変換します。

 

[指定形式]

#include <ctype.h>

long toupper(long c);

 

[引数]

c  変換する文字

 

[戻り値]

文字cが英小文字の時 :文字cに対応する英大文字

文字cが英小文字以外の時 :文字c

 

isblank

空白文字またはタブ文字か判定します。

 

[指定形式]

#include <ctype.h>

long isblank(long c);

 

[引数]

c  判定する文字

 

[戻り値]

文字cが空白文字またはタブ文字の時 :0以外

文字cが空白文字でもタブ文字でもない時 :0