C標準ライブラリ -<ctype.h>

概要

C標準ライブラリのctype.hヘッダーファイルは、文字のテストと変換に使用できる関数を提供します。これらの関数は主に、文字の種類(アルファベット、数字、空白文字など)をチェックし、文字の大文字と小文字の変換を行います。

<ctype.h>文字の分類と変換操作を処理するための便利な関数群を提供し、C標準ライブラリにおける文字操作の重要なツールです。

以下は、提供された関数の<ctype.h>使用方法を示す簡単な例です:

例

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

int main() {
    char ch;

    // サンプル文字
    char chars[] = "a1 B? \n";

    // 各文字のタイプをチェック
    for (int i = 0; chars[i] != '\0'; i++) {
        ch = chars[i];
        printf("Character: '%c'\n", ch);
        if (isalpha(ch)) {
            printf(" - isalpha: Yes\n");
        } else {
            printf(" - isalpha: No\n");
        }
        if (isdigit(ch)) {
            printf(" - isdigit: Yes\n");
        } else {
            printf(" - isdigit: No\n");
        }
        if (isspace(ch)) {
            printf(" - isspace: Yes\n");
        } else {
            printf(" - isspace: No\n");
        }
        if (isprint(ch)) {
            printf(" - isprint: Yes\n");
        } else {
            printf(" - isprint: No\n");
        }
        if (ispunct(ch)) {
            printf(" - ispunct: Yes\n");
        } else {
            printf(" - ispunct: No\n");
        }
    }

    // 文字の大文字小文字変換の例
    char lower = 'a';
    char upper = 'A';

    printf("tolower('%c') = '%c'\n", upper, tolower(upper));
    printf("toupper('%c') = '%c'\n", lower, toupper(lower));

    return 0;
}

出力結果:

Character: 'a'
 - isalpha: Yes
 - isdigit: No
 - isspace: No
 - isprint: Yes
 - ispunct: No
Character: '1'
 - isalpha: No
 - isdigit: Yes
 - isspace: No
 - isprint: Yes
 - ispunct: No
Character: ' '
 - isalpha: No
 - isdigit: No
 - isspace: Yes
 - isprint: Yes
 - ispunct: No
Character: 'B'
 - isalpha: Yes
 - isdigit: No
 - isspace: No
 - isprint: Yes
 - ispunct: No
Character: '?'
 - isalpha: No
 - isdigit: No
 - isspace: No
 - isprint: Yes
 - ispunct: Yes
Character: '
'
 - isalpha: No
 - isdigit: No
 - isspace: Yes
 - isprint: No
 - ispunct: No
tolower('A') = 'a'
toupper('a') = 'A'

ライブラリ関数

以下に、ヘッダーファイル ctype.h で定義されている関数を示します。

これらの関数は、文字が特定のタイプに属するかどうかをテストするために使用され、引数として値を受け取ります。intその値は EOF または unsigned char として表現できるものでなければなりません。

パラメータ c が記述された条件を満たす場合、これらの関数はゼロ以外(true)を返します。パラメータ c が記述された条件を満たさない場合、これらの関数はゼロを返します。

番号関数 & 説明
1int isalnum(int c)
この関数は、渡された文字が英数字であるかどうかをチェックします。
2int isalpha(int c)
この関数は、渡された文字がアルファベットであるかどうかをチェックします。
3int iscntrl(int c)
この関数は、渡された文字が制御文字であるかどうかをチェックします。
4int isdigit(int c)
この関数は、渡された文字が10進数字であるかどうかをチェックします。
5int isgraph(int c)
この関数は、渡された文字がグラフィック表現を持つかどうかをチェックします。
6int islower(int c)
この関数は、渡された文字が小文字であるかどうかをチェックします。
7int isprint(int c)
この関数は、渡された文字が印字可能であるかどうかをチェックします。
8int ispunct(int c)
この関数は、渡された文字が句読点文字であるかどうかをチェックします。
9int isspace(int c)
この関数は、渡された文字が空白文字であるかどうかをチェックします。
10int isupper(int c)
この関数は、渡された文字が大文字であるかどうかをチェックします。
11int isxdigit(int c)
この関数は、渡された文字が16進数字であるかどうかをチェックします。

標準ライブラリには、int を受け取って int を返す2つの変換関数も含まれています。

番号関数 & 説明
1int tolower(int c)
この関数は大文字を小文字に変換します。
2int toupper(int c)
この関数は小文字を大文字に変換します。

文字クラス

番号文字クラス & 説明
1数字
数字の完全な集合 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
216進数字
集合 { 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f }
3小文字
集合 { 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 }
4大文字
集合 {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 }
5アルファベット
小文字と大文字の集合
6英数字文字
数字、小文字、大文字の集合
7句読点文字
集合 ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
8グラフィック文字
英数字文字と句読点文字の集合
9空白文字
タブ文字、改行文字、垂直タブ文字、フォームフィード、復帰文字、スペース文字の集合。
10印字可能文字
英数字文字、句読点文字、スペース文字の集合。
11制御文字
ASCII エンコーディングでは、これらの文字の8進コードは 000 から 037、および 177(DEL)です。
12空白文字
スペース文字とタブ文字を含みます。
13アルファベット文字
小文字と大文字の集合。
その他の拡張