C言語編 リファレンス

標準ライブラリ 「I」

「I」で始まる標準ライブラリ関数及び、その他の定義です。

INT_MAX

概要 int型の最大値を表す。
必要なヘッダファイル limits.h
形式 #define INT_MAX 2147483647
置換結果 int型で表現可能な最大値。
詳細
注意 int型の大きさはコンパイラ依存であり、上記の形式は int型が 32bit の環境の場合である。
ただし、16bit未満であることはあり得ない。
使用例
#include <stdio.h>
#include <limits.h>

int main(void)
{
	printf( "%d\n", INT_MAX );

	return 0;
}

実行結果:

2147483647
関連 int型の最小値は INT_MIN で表される。
本編で解説している章 第20章

INT_MIN

概要 int型の最小値を表す。
必要なヘッダファイル limits.h
形式 #define INT_MIN -2147483648
置換結果 int型で表現可能な最小値。
詳細
注意 int型の大きさはコンパイラ依存であり、上記の形式は int型が 32bit の環境の場合である。
ただし、16bit未満であることはあり得ない。
使用例
#include <stdio.h>
#include <limits.h>

int main(void)
{
	printf( "%d\n", INT_MIN );

	return 0;
}

実行結果:

-2147483648
関連 int型の最大値は INT_MAX で表される。
本編で解説している章 第20章

isalnum関数

概要 英数字かどうか判定する。
必要なヘッダファイル ctype.h
形式 int isalnum(int c);
引数 c 判定する文字。
戻り値 引数c が英数字であれば 0以外を返し、そうでなければ 0 を返す。
詳細 英数字とは、大文字のアルファベット、小文字のアルファベット、数字を合わせた文字集合である。 したがって、isalpha関数isdigit関数がいずれも真を返すような文字である。
注意 引数c が 0〜UCHAR_MAX あるいは EOF のいずれかに含まれていない場合の動作は未定義である。
使用例
#include <stdio.h>
#include <ctype.h>
#include <limits.h>

int main(void)
{
	int i;

	for( i = 0; i < UCHAR_MAX; ++i ){
		if( isalnum(i) ){
			printf( "%c (%x)\n", i, i );
		}
	}

	return 0;
}

実行結果

0 (30)
1 (31)
2 (32)
3 (33)
4 (34)
5 (35)
6 (36)
7 (37)
8 (38)
9 (39)
A (41)
B (42)
C (43)
D (44)
E (45)
F (46)
G (47)
H (48)
I (49)
J (4a)
K (4b)
L (4c)
M (4d)
N (4e)
O (4f)
P (50)
Q (51)
R (52)
S (53)
T (54)
U (55)
V (56)
W (57)
X (58)
Y (59)
Z (5a)
a (61)
b (62)
c (63)
d (64)
e (65)
f (66)
g (67)
h (68)
i (69)
j (6a)
k (6b)
l (6c)
m (6d)
n (6e)
o (6f)
p (70)
q (71)
r (72)
s (73)
t (74)
u (75)
v (76)
w (77)
x (78)
y (79)
z (7a)
関連 英字は isalpha関数で、 数字は isdigit関数で判定できる。
なお、C95以降であれば、ワイド文字を対象とした iswalnum関数が追加されている。
本編で解説している章

isalpha関数

概要 英字かどうか判定する。
必要なヘッダファイル ctype.h
形式 int isalpha(int c);
引数 c 判定する文字。
戻り値 引数c が英字であれば 0以外を返し、そうでなければ 0 を返す。
詳細 英字とは、大文字のアルファベット、小文字のアルファベットを合わせた文字集合である。
注意 引数c が 0〜UCHAR_MAX あるいは EOF のいずれかに含まれていない場合の動作は未定義である。
使用例
#include <stdio.h>
#include <ctype.h>
#include <limits.h>

int main(void)
{
	int i;

	for( i = 0; i < UCHAR_MAX; ++i ){
		if( isalpha(i) ){
			printf( "%c (%x)\n", i, i );
		}
	}

	return 0;
}

実行結果

A (41)
B (42)
C (43)
D (44)
E (45)
F (46)
G (47)
H (48)
I (49)
J (4a)
K (4b)
L (4c)
M (4d)
N (4e)
O (4f)
P (50)
Q (51)
R (52)
S (53)
T (54)
U (55)
V (56)
W (57)
X (58)
Y (59)
Z (5a)
a (61)
b (62)
c (63)
d (64)
e (65)
f (66)
g (67)
h (68)
i (69)
j (6a)
k (6b)
l (6c)
m (6d)
n (6e)
o (6f)
p (70)
q (71)
r (72)
s (73)
t (74)
u (75)
v (76)
w (77)
x (78)
y (79)
z (7a)
関連 大文字のアルファベットかどうかは isupper関数で、 小文字かどうかは islower関数で判定できる。
なお、C95以降であれば、ワイド文字を対象とした iswalpha関数が追加されている。
本編で解説している章

isblank関数

概要 単語を区切る文字かどうか判定する。
必要なヘッダファイル ctype.h
形式 int isblank(int c);
引数 c 判定する文字。
戻り値 引数c が、単語を区切ることに使われる文字であれば 0以外を返し、そうでなければ 0 を返す。
詳細 単語を区切る文字とは、空白文字('')、タブ文字('\t') である。 これら以外に、ロケールに応じてそのほかの文字が追加されることがある。
注意
使用例
#include <stdio.h>
#include <ctype.h>
#include <limits.h>

int main(void)
{
	int i;

	for( i = 0; i < UCHAR_MAX; ++i ){
		if( isblank(i) ){
			printf( "%c (%x)\n", i, i );
		}
	}

	return 0;
}

実行結果

         (9)
  (20)
関連 ワイド文字を対象とした iswblank関数がある。
本編で解説している章

iscntrl関数

概要 制御文字かどうか判定する。
必要なヘッダファイル ctype.h
形式 int iscntrl(int c);
引数 c 判定する文字。
戻り値 引数c が制御文字であれば 0以外を返し、そうでなければ 0 を返す。
詳細 制御文字とは、画面に出力したとき領域を消費しないような文字を指す。 つまり、isprint関数が偽となるような文字である。
注意 引数c が 0〜UCHAR_MAX あるいは EOF のいずれかに含まれていない場合の動作は未定義である。
使用例
#include <stdio.h>
#include <ctype.h>
#include <limits.h>

int main(void)
{
	int i;

	for( i = 0; i < UCHAR_MAX; ++i ){
		if( iscntrl(i) ){
			printf( "%c (%x)\n", i, i );
		}
	}

	return 0;
}

実行結果

 (0)
 (1)
 (2)
 (3)
 (4)
 (5)
 (6)
 (7)
 (8)
	 (9)

 (a)
 (b)
 (c)

 (d)
 (e)
 (f)
 (10)
 (11)
 (12)
 (13)
 (14)
 (15)
 (16)
 (17)
 (18)
 (19)
 (1a)
 (1b)
 (1c)
 (1d)
 (1e)
 (1f)
 (7f)
関連 C95以降であれば、ワイド文字を対象とした iswcntrl関数が追加されている。
本編で解説している章

isdigit関数

概要 数字かどうか判定する。
必要なヘッダファイル ctype.h
形式 int isdigit(int c);
引数 c 判定する文字。
戻り値 引数c が数字であれば 0以外を返し、そうでなければ 0 を返す。
詳細
注意 引数c が 0〜UCHAR_MAX あるいは EOF のいずれかに含まれていない場合の動作は未定義である。
使用例
#include <stdio.h>
#include <ctype.h>
#include <limits.h>

int main(void)
{
	int i;

	for( i = 0; i < UCHAR_MAX; ++i ){
		if( isdigit(i) ){
			printf( "%c (%x)\n", i, i );
		}
	}

	return 0;
}

実行結果

0 (30)
1 (31)
2 (32)
3 (33)
4 (34)
5 (35)
6 (36)
7 (37)
8 (38)
9 (39)
関連 16進数を表現するために使われる 0〜9、a〜f、A〜F のいずれかを判定するために isxdigit関数 も存在している。
なお、C95以降であれば、ワイド文字を対象とした iswdigit関数が追加されている。
本編で解説している章

isgraph関数

概要 図形文字かどうか判定する。
必要なヘッダファイル ctype.h
形式 int isgraph(int c);
引数 c 判定する文字。
戻り値 引数c が図形文字であれば 0以外を返し、そうでなければ 0 を返す。
詳細 図形文字とは、印字文字(画面やプリンタに出力した際に1文字分の領域を消費する文字)から空白文字を除いたものである。
注意 引数c が 0〜UCHAR_MAX あるいは EOF のいずれかに含まれていない場合の動作は未定義である。
使用例
#include <stdio.h>
#include <ctype.h>
#include <limits.h>

int main(void)
{
	int i;

	for( i = 0; i < UCHAR_MAX; ++i ){
		if( isgraph(i) ){
			printf( "%c (%x)\n", i, i );
		}
	}

	return 0;
}

実行結果

! (21)
" (22)
# (23)
$ (24)
% (25)
& (26)
' (27)
( (28)
) (29)
* (2a)
+ (2b)
, (2c)
- (2d)
. (2e)
/ (2f)
0 (30)
1 (31)
2 (32)
3 (33)
4 (34)
5 (35)
6 (36)
7 (37)
8 (38)
9 (39)
: (3a)
; (3b)
< (3c)
= (3d)
> (3e)
? (3f)
@ (40)
A (41)
B (42)
C (43)
D (44)
E (45)
F (46)
G (47)
H (48)
I (49)
J (4a)
K (4b)
L (4c)
M (4d)
N (4e)
O (4f)
P (50)
Q (51)
R (52)
S (53)
T (54)
U (55)
V (56)
W (57)
X (58)
Y (59)
Z (5a)
[ (5b)
\ (5c)
] (5d)
^ (5e)
_ (5f)
` (60)
a (61)
b (62)
c (63)
d (64)
e (65)
f (66)
g (67)
h (68)
i (69)
j (6a)
k (6b)
l (6c)
m (6d)
n (6e)
o (6f)
p (70)
q (71)
r (72)
s (73)
t (74)
u (75)
v (76)
w (77)
x (78)
y (79)
z (7a)
{ (7b)
| (7c)
} (7d)
~ (7e)
関連 空白文字も真と判定したければ isprint関数を使う。 また、空白文字を判定したければ isspace関数がある。
なお、C95以降であれば、ワイド文字を対象とした iswgraph関数が追加されている。
本編で解説している章

islower関数

概要 小文字のアルファベットかどうか判定する。
必要なヘッダファイル ctype.h
形式 int islower(int c);
引数 c 判定する文字。
戻り値 引数c が小文字のアルファベットであれば 0以外を返し、そうでなければ 0 を返す。
詳細
注意 引数c が 0〜UCHAR_MAX あるいは EOF のいずれかに含まれていない場合の動作は未定義である。
使用例
#include <stdio.h>
#include <ctype.h>
#include <limits.h>

int main(void)
{
	int i;

	for( i = 0; i < UCHAR_MAX; ++i ){
		if( islower(i) ){
			printf( "%c (%x)\n", i, i );
		}
	}

	return 0;
}

実行結果

a (61)
b (62)
c (63)
d (64)
e (65)
f (66)
g (67)
h (68)
i (69)
j (6a)
k (6b)
l (6c)
m (6d)
n (6e)
o (6f)
p (70)
q (71)
r (72)
s (73)
t (74)
u (75)
v (76)
w (77)
x (78)
y (79)
z (7a)
関連 大文字のアルファベットかどうかは、isupper関数で判定できる。
なお、C95以降であれば、ワイド文字を対象とした iswlower関数が追加されている。
本編で解説している章

isprint関数

概要 印字文字かどうか判定する。
必要なヘッダファイル ctype.h
形式 int isprint(int c);
引数 c 判定する文字。
戻り値 引数c が印字文字であれば 0以外を返し、そうでなければ 0 を返す。
詳細 印字文字とは、画面やプリンタなどに出力した際、1文字分の領域を消費するものを指す。 したがって、空白文字も含まれる。
注意 引数c が 0〜UCHAR_MAX あるいは EOF のいずれかに含まれていない場合の動作は未定義である。
使用例
#include <stdio.h>
#include <ctype.h>
#include <limits.h>

int main(void)
{
	int i;

	for( i = 0; i < UCHAR_MAX; ++i ){
		if( isprint(i) ){
			printf( "%c (%x)\n", i, i );
		}
	}

	return 0;
}

実行結果

  (20)
! (21)
" (22)
# (23)
$ (24)
% (25)
& (26)
' (27)
( (28)
) (29)
* (2a)
+ (2b)
, (2c)
- (2d)
. (2e)
/ (2f)
0 (30)
1 (31)
2 (32)
3 (33)
4 (34)
5 (35)
6 (36)
7 (37)
8 (38)
9 (39)
: (3a)
; (3b)
< (3c)
= (3d)
> (3e)
? (3f)
@ (40)
A (41)
B (42)
C (43)
D (44)
E (45)
F (46)
G (47)
H (48)
I (49)
J (4a)
K (4b)
L (4c)
M (4d)
N (4e)
O (4f)
P (50)
Q (51)
R (52)
S (53)
T (54)
U (55)
V (56)
W (57)
X (58)
Y (59)
Z (5a)
[ (5b)
\ (5c)
] (5d)
^ (5e)
_ (5f)
` (60)
a (61)
b (62)
c (63)
d (64)
e (65)
f (66)
g (67)
h (68)
i (69)
j (6a)
k (6b)
l (6c)
m (6d)
n (6e)
o (6f)
p (70)
q (71)
r (72)
s (73)
t (74)
u (75)
v (76)
w (77)
x (78)
y (79)
z (7a)
{ (7b)
| (7c)
} (7d)
~ (7e)
関連 isprint関数は空白文字も真とみなすが、空白文字を省きたければ isgraph関数が使える。 また、空白文字を判定したければ isspace関数がある。
なお、C95以降であれば、ワイド文字を対象とした iswprint関数が追加されている。
本編で解説している章

ispunct関数

概要 区切り文字かどうか判定する。
必要なヘッダファイル ctype.h
形式 int ispunct(int c);
引数 c 判定する文字。
戻り値 引数c が区切り文字であれば 0以外を返し、そうでなければ 0 を返す。
詳細 isalnum関数が偽を返す文字であり、かつ、 図形文字(=isgraph関数が真を返す)でもあるものを指す。
注意 引数c が 0〜UCHAR_MAX あるいは EOF のいずれかに含まれていない場合の動作は未定義である。
使用例
#include <stdio.h>
#include <ctype.h>
#include <limits.h>

int main(void)
{
	int i;

	for( i = 0; i < UCHAR_MAX; ++i ){
		if( ispunct(i) ){
			printf( "%c (%x)\n", i, i );
		}
	}

	return 0;
}

実行結果

! (21)
" (22)
# (23)
$ (24)
% (25)
& (26)
' (27)
( (28)
) (29)
* (2a)
+ (2b)
, (2c)
- (2d)
. (2e)
/ (2f)
: (3a)
; (3b)
< (3c)
= (3d)
> (3e)
? (3f)
@ (40)
[ (5b)
\ (5c)
] (5d)
^ (5e)
_ (5f)
` (60)
{ (7b)
| (7c)
} (7d)
~ (7e)
関連 C95以降であれば、ワイド文字を対象とした iswpunct関数が追加されている。
本編で解説している章

isspace関数

概要 空白文字かどうか判定する。
必要なヘッダファイル ctype.h
形式 int isspace(int c);
引数 c 判定する文字。
戻り値 引数c が空白文字であれば 0以外を返し、そうでなければ 0 を返す。
詳細
注意 引数c が 0〜UCHAR_MAX あるいは EOF のいずれかに含まれていない場合の動作は未定義である。
使用例
#include <stdio.h>
#include <ctype.h>
#include <limits.h>

int main(void)
{
	int i;

	for( i = 0; i < UCHAR_MAX; ++i ){
		if( isspace(i) ){
			printf( "%c (%x)\n", i, i );
		}
	}

	return 0;
}

実行結果

         (9)

 (a)

 (b)

 (c)
 (d)
  (20)
関連 C95以降であれば、ワイド文字を対象とした iswspace関数が追加されている。
本編で解説している章

isupper関数

概要 大文字のアルファベットかどうか判定する。
必要なヘッダファイル ctype.h
形式 int isupper(int c);
引数 c 判定する文字。
戻り値 引数c が大文字のアルファベットであれば 0以外を返し、そうでなければ 0 を返す。
詳細
注意 引数c が 0〜UCHAR_MAX あるいは EOF のいずれかに含まれていない場合の動作は未定義である。
使用例
#include <stdio.h>
#include <ctype.h>
#include <limits.h>

int main(void)
{
	int i;

	for( i = 0; i < UCHAR_MAX; ++i ){
		if( isupper(i) ){
			printf( "%c (%x)\n", i, i );
		}
	}

	return 0;
}

実行結果

A (41)
B (42)
C (43)
D (44)
E (45)
F (46)
G (47)
H (48)
I (49)
J (4a)
K (4b)
L (4c)
M (4d)
N (4e)
O (4f)
P (50)
Q (51)
R (52)
S (53)
T (54)
U (55)
V (56)
W (57)
X (58)
Y (59)
Z (5a)
関連 小文字のアルファベットかどうかは、islower関数で判定できる。
なお、C95以降であれば、ワイド文字を対象とした iswupper関数が追加されている。
本編で解説している章

iswalnum関数

iswalpha関数

iswblank関数

概要 単語を区切る文字かどうか判定する。
必要なヘッダファイル wctype.h
形式 wint_t iswblank(wint_t c);
引数 c 判定する文字。
戻り値 引数c が、単語を区切ることに使われる文字であれば 0以外を返し、そうでなければ 0 を返す。
詳細 単語を区切る文字とは、空白文字(L'')、タブ文字(L'\t') である。 これら以外に、ロケールに応じてそのほかの文字が追加されることがある。
注意
使用例
#include <stdio.h>
#include <wctype.h>
#include <limits.h>

int main(void)
{
	wchar_t s[] = L"xxxx yyy zzzz";

	for( wchar_t* p = s; *p != L'\0'; ++p ){
		if( iswblank(*p) ){
			*p = L'\n';
		}
	}

	fwprintf( stdout, L"%ls\n", s );

	return 0;
}

実行結果

xxxx
yyy
zzzz
関連 マルチバイト文字を対象とした isblank関数がある。
本編で解説している章

iswcntrl関数

iswdigit関数

iswgraph関数

iswlower関数

iswprint関数

iswpunct関数

iswspace関数

iswupper関数

iswxdigit関数

isxdigit関数

概要 16進数字かどうか判定する。
必要なヘッダファイル ctype.h
形式 int isxdigit(int c);
引数 c 判定する文字。
戻り値 引数c が16進数字であれば 0以外を返し、そうでなければ 0 を返す。
詳細 16進数字とは、0〜9、a〜f、A〜F のいずれかのことである。
注意 引数c が 0〜UCHAR_MAX あるいは EOF のいずれかに含まれていない場合の動作は未定義である。
使用例
#include <stdio.h>
#include <ctype.h>
#include <limits.h>

int main(void)
{
	int i;

	for( i = 0; i < UCHAR_MAX; ++i ){
		if( isxdigit(i) ){
			printf( "%c (%x)\n", i, i );
		}
	}

	return 0;
}

実行結果

0 (30)
1 (31)
2 (32)
3 (33)
4 (34)
5 (35)
6 (36)
7 (37)
8 (38)
9 (39)
A (41)
B (42)
C (43)
D (44)
E (45)
F (46)
a (61)
b (62)
c (63)
d (64)
e (65)
f (66)
関連 数字のみの判定であれば、isdigit関数 を使う。
なお、C95以降であれば、ワイド文字を対象とした iswxdigit関数が追加されている。
本編で解説している章

参考リンク

更新履歴

'2017/4/16 isblank関数、iswblank関数の説明を追加。

'2011/7/23 iscntrl関数の説明を追加。

'2011/7/19 islower関数、isupper関数、isxdigit関数の説明を追加。

'2011/7/18 isalnum関数、isalpha関数、isdigit関数、ispunct関数の説明を追加。

'2011/7/16 isgraph関数、isprint関数、isspace関数の説明を追加。

'2009/11/21 INT_MAX、INT_MIN の説明を追加。

'2009/6/24 新規作成。



リファレンスのトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ