27-4 3級対策:標準ライブラリ関数(ctype.h)

3級の出題範囲にある ctype.h の全関数を整理する。
関数名の語源を覚えると判断しやすい。


27-4-1 is○○:文字の判定関数

#include <ctype.h> が必要。真なら 0 以外、偽なら 0 を返す。

関数名語源判定内容真になる例
isalpha(c)alpha(アルファベット)英字(a〜z、A〜Z)'A', 'z'
isdigit(c)digit(数字)数字(0〜9)'0', '9'
isalnum(c)alpha + numeric英字または数字'A', '3'
islower(c)lower(小文字)小文字英字(a〜z)'a', 'z'
isupper(c)upper(大文字)大文字英字(A〜Z)'A', 'Z'
isspace(c)space(空白)空白文字(スペース・タブ・改行など)' ', '\t', '\n'
ispunct(c)punct(句読点・記号)記号(英数字・空白以外の表示文字)'!', '?', '#', '.'
isgraph(c)graph(グラフィック)表示可能文字(空白は含まない)'A', '!', '5'
isprint(c)print(印刷可能)表示可能文字(空白も含む)' ', 'A', '9', '*'
iscntrl(c)cntrl(制御文字)制御文字'\n', '\t', '\0'
isxdigit(c)xdigit(16進数字)16進数で使える文字'0'〜'9', 'a'〜'f', 'A'〜'F'
⚠ 紛らわしいペア:
isgraph:スペースは含まない(空白は非表示扱い)
isprint:スペースは含む(空白も印刷可能)
isspace('\t') → 真(タブも空白文字に含まれる)
ispunct('.') → 真(ピリオドは記号)

27-4-2 to○○:文字の変換関数

関数名変換内容
tolower(c)小文字に変換(to lower-case)'A' → 'a'('a' はそのまま)
toupper(c)大文字に変換(to upper-case)'b' → 'B'('B' はそのまま)
✅ to○○ 系は英字以外の文字を渡してもそのまま返す(エラーにならない)。

27-4-3 理解度チェック

Q1. isalnum('3') の結果として正しいものはどれか。

解説を表示

正解:イ

'3' は数字なので isalnum(英字または数字)は真を返す。

Q2. isgraph(' ')(スペース文字)の結果として正しいものはどれか。

解説を表示

正解:ア(偽)

isgraph は空白を含まない。isprint なら空白は真になる。

Q3. isspace('\t')(タブ文字)の結果として正しいものはどれか。

解説を表示

正解:イ(真)

isspace はスペースだけでなくタブ('\t')・改行('\n')なども空白文字として真を返す。

Q4. isxdigit('G') の結果として正しいものはどれか。

解説を表示

正解:ア(偽)

16進数字は '0'〜'9', 'a'〜'f', 'A'〜'F'。'G' はこの範囲外なので偽。

Q5. toupper('a') の戻り値はどれか。

解説を表示

正解:ウ('A')

toupper は小文字を大文字に変換する。'a' → 'A'。