isprint | Programming Place Plus C言語編 標準ライブラリのリファレンス

トップページC言語編標準ライブラリのリファレンス(名前順)

トップページC言語編標準ライブラリのリファレンス(ヘッダ別)


isprint関数

概要

印字文字かどうか判定する。

ヘッダ

ctype.h

形式

int isprint(int c);

引数

c

判定する文字。

戻り値

引数c が印字文字であれば 0以外を返し、そうでなければ 0 を返す。

詳細

ロケールの LC_CTYPE カテゴリの影響を受ける。
印字文字とは、画面やプリンタなどに出力した際、1文字分の領域を消費するものを指す。したがって、空白文字も含まれる。

注意

引数c が 0~UCHAR_MAX あるいは EOF のいずれかに含まれていない場合の動作は未定義である。

使用例

#include <stdio.h>
#include <ctype.h>
#include <limits.h>

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

実行結果

  (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関数がある。
ワイド文字版の iswprint関数がある。

解説章


参考リンク


更新履歴

’2018/4/22 解説中で C95 を(C89 に対して)特別扱いしないように修正。そもそもC言語編は C95ベースなので、余計な説明は省く。

’2018/4/10 ロケールに関する記述を追加。

’2018/1/22 新規作成。



標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

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

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る