ヘッダー は、文字の分類やマッピングに役立ついくつかの関数を宣言しています『JISX3010:2003』p.135「7.4 文字操作」。
ここで宣言する関数はのすべての引数はintで、その値はunsigned charとして表現可能であるか、またはマクロEOFの値と等しくなければなりません（それ以外の値の場合、動作は未定義( undefined )です）。
これらの関数の動作は、現在のロケールの影響を受けます。
"C" ロケールでない場合にのみロケール固有の側面を持つ関数を以下に示します。
印刷文字:表示装置の1つの印刷位置を占めるローカル固有の文字の集合の一つ
制御文字:印刷文字ではないローカル固有の文字の集合の一つ
すべての文字と数字は印刷文字です。
文字種分類関数( ''Character classification functions'' )は、引数 c の値が関数の説明にある値と一致する場合に限り、0以外の値（真）を返します『JISX3010:2003』p.136「7.4.1 文字種分類関数」。
形式
int isalnum(int c);
引数
返却値
機能
文字cが英数字（'A'～'Z', 'a'～'z', '0'～'9'）の場合真（0以外の値）を返し、それ以外の場合偽（0）を返す。
例
int main(void) {
	printf("文字を入力してください：");
	int c = getchar();
	if (isalnum(c))
		printf("%cは英数字です。", c);
	else
		printf("%cは英数字ではありません。", c);
}
形式
int isalpha(int c);
引数
返却値
機能
文字cが英文字（'A'～'Z', 'a'～'z'）の場合真（0以外の値）を返し、それ以外の場合偽（0）を返す。
例
int main(void) {
  printf("文字を入力してください：");
  int c = getchar();
  if (isalnum(c))
    printf("%cは英数字です。", c);
  else
    printf("%cは英数字ではありません。", c);
}
形式
int isblank(int c);
引数
返却値
機能
文字cが標準ブランク文字（' ', "\t"）の場合真（0以外の値）を返し、それ以外の場合偽（0）を返す。
例
int main(void)
{
	printf("文字を入力してください：");
	int c = getchar();
	if (isblank(c))
		printf("%cは標準ブランク文字です。", c);
	else
		printf("%cは標準ブランク文字ではありません。", c);
	
}
形式
int iscntrl(int c);
引数
返却値
機能
文字cが制御文字（0x00～0x1f, 0x7f）の場合真（0以外の値）を返し、それ以外の場合偽（0）を返す。
例
int main(void) {
  int c;
  printf("文字を入力してください：");
  int c = getchar();
  if (isctrl(c))
    printf("%cは制御文字です。", c);
  else
    printf("%cは制御文字ではありません。", c);
}
形式
int isdigit(int c);
引数
返却値
機能
文字cが数字（'0'～'9'）の場合真（0以外の値）を返し、それ以外の場合偽（0）を返す。
例
int main(void) {
  printf("文字を入力してください：");
  int c = getchar();
  if (isdigit(c))
    printf("%cは数字です。", c);
  else
    printf("%cは数字ではありません。", c);
}
形式
int isgraph(int c);
引数
返却値
機能
文字cが空白（' '）を除く表示文字（0x21～0x7e）の場合真（0以外の値）を返し、それ以外の場合偽（0）を返す。
例
int main(void) {
  printf("文字を入力してください：");
  int c = getchar();
  if (isgraph(c))
    printf("%cは表示文字（空白を除く）です。", c);
  else
    printf("%cは表示文字（空白を除く）ではありません。", c);
}
形式
int islower(int c);
引数
返却値
機能
文字cが英小文字（'a'～'z'）の場合真（0以外の値）を返し、それ以外の場合偽（0）を返す。
例
int main(void) {
  printf("文字を入力してください：");
  int c = getchar();
  if (islower(c))
    printf("%cは英小文字です。", c);
  else
    printf("%cは英小文字ではありません。", c);
}
形式
int isprint(int c);
引数
返却値
機能
文字cが空白（' '）を含む表示文字（0x20～0x7e）の場合真（0以外の値）を返し、それ以外の場合偽（0）を返す。
例
int main(void) {
  printf("文字を入力してください：");
  int c = getchar();
  if (isprint(c))
    printf("%cは表示文字（空白を含む）です。", c);
  else
    printf("%cは表示文字（空白を含む）ではありません。", c);
}
形式
int ispunct(int c);
引数
返却値
機能
文字cが区切り文字（0x21～0x2f, 0x3a～0x40, 0x5b～0x60, 0x7b～0x7e）の場合真（0以外の値）を返し、それ以外の場合偽（0）を返す。
例
int main(void) {
  printf("文字を入力してください：");
  int c = getchar();
  if (ispunct(c))
    printf("%cは区切り文字です。", c);
  else
    printf("%cは区切り文字ではありません。", c);
}
形式
int isspace(int c);
引数
返却値
機能
文字cが標準空白類文字（' ', '\f', '\n', '\r', '\t', '\v'）の場合真（0以外の値）を返し、それ以外の場合偽（0）を返す。
例
int main(void) {
  printf("文字を入力してください：");
  int c = getchar();
  if (isspace(c))
    printf("%cは標準空白類文字です。", c);
  else
    printf("%cは標準空白類文字ではありません。", c);
}
形式
int isupper(int c);
引数
返却値
機能
文字cが英大文字（'A'～'Z'）の場合真（0以外の値）を返し、それ以外の場合偽（0）を返す。
例
int main(void) {
  printf("文字を入力してください：");
  int c = getchar();
  if (isupper(c))
    printf("%cは英大文字です。", c);
  else
    printf("%cは英大文字ではありません。", c);
}
形式
int isxdigit(int c);
引数
返却値
機能
文字cが16進数字（'0'～'9', 'A'～'F', 'a'～'f'）の場合真（0以外の値）を返し、それ以外の場合偽（0）を返す。
例
int main(void) {
  printf("文字を入力してください：");
  int c = getchar();
  if (isxdigit(c))
    printf("%cは16進数字です。", c);
  else
    printf("%cは16進数字ではありません。", c);
}
大文字小文字変換関数( ''Character case mapping functions'' )は、変換条件に合致する文字に置き換える。
変換条件に合致する文字は、''Locale'' によっては複数が該当する可能性があるが、同じ ''Locale'' の場合、常に同じ値を返す『JISX3010:2003』p.138「7.4.2 大文字小文字変換関数」。
形式
int tolower(int c);
引数
返却値
機能
文字cが大文字の場合、小文字に変換した値を返す。文字cが大文字以外の場合、変換せずにそのままの値を返す。
例
int main(void) {
  printf("文字を入力してください：");
  int c = getchar();
  printf("%cは小文字にすると%cです。", c, tolower(c));
}
形式
int toupper(int c);
引数
返却値
機能
文字cが小文字の場合、大文字に変換した値を返す。文字cが小文字以外の場合、変換せずにそのままの値を返す。
例
int main(void) {
  printf("文字を入力してください：");
  int c = getchar();
  printf("%cは大文字にすると%cです。", c, toupper(c));
}