Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語の文字分析関数とは?ctype.hライブラリの使い方をサンプルコード付きで解説

文字の分析・変換関数とは

C言語では、「ctype.h」ヘッダーファイルに定義された標準ライブラリ関数を使うことで、入力された1文字が何であるかを判定(分析)したり、大文字・小文字を相互に変換したりすることができます。これらの関数は、ユーザー入力のバリデーションやテキスト処理など、さまざまな場面で活用されます。

主な文字分析関数

以下の表は、ctype.h で提供される代表的な文字分析(判定)関数の一覧です。いずれも引数として渡した文字が条件に合致すれば真(0以外)、合致しなければ偽(0)を返します。

番号関数名説明
1isalpha()英字(アルファベット)かどうかを判定する
2isdigit()数字(0〜9)かどうかを判定する
3isspace()スペース、改行、タブなどの空白文字かどうかを判定する
4ispunct()特殊記号(区切り文字など)かどうかを判定する
5islower()アルファベットの小文字かどうかを判定する
6isupper()アルファベットの大文字かどうかを判定する
7isalnum()英字または数字(英数字)かどうかを判定する

主な文字変換関数

文字の種類を判定するだけでなく、大文字と小文字を変換するための関数も用意されています。

関数名説明
tolower()大文字の英字を小文字に変換する
toupper()小文字の英字を大文字に変換する

サンプルプログラム

それでは、文字分析関数の動作を確認できる簡単なプログラムを見てみましょう。ここでは isalpha() を使って、文字変数の中身が英字かどうかを判定しています。

#include<stdio.h>
#include<ctype.h>
void main(){
   // コンパイル時に文字型変数を初期化 //
char variable = 'A';
   // ユーザー入力を読み込む //
   //printf("Enter the character : ");
   //scanf("%c",variable);
   // 文字分析関数を使って結果を出力 //
   if (isalpha(variable)){
      printf("The character entered is :%c, an alphabet",variable);
   } else {
      printf("The character entered is not an alphabet");
   }
}

実行結果

変数には 'A' という英字が代入されているため、isalpha() の条件が真となり、以下のように出力されます。

The character entered is :A, an alphabet

もし変数に数字や記号が代入されていた場合は、else 側の処理が実行され「アルファベットではない」というメッセージが表示されます。コメントアウトされている scanf の部分を有効化すれば、ユーザーから入力した文字をその場で判定することも可能です。

  1. C言語のループ制御文(for・while・do-while)を徹底解説!フローチャートとサンプルコード付き

    C言語におけるループ制御文は、同じ処理を何度も繰り返し実行したい場合に使われる重要な構文です。毎回コードを書き連ねる必要がなくなり、プログラムを簡潔かつ効率的に記述できます。 C言語で利用できるループ制御文は、主に以下の3種類です。 for文 while文 do-while文 本記事では、それぞれの構文の書き方、フローチャートによる動作の流れ、実際に動くサンプルプログラムと実行結果まで、初心者にもわかりやすく解説します。 for文とは?基本構文と使い方 for文は、「初期化」「条件式」「増減式」を1行にまとめて記述できる、最もよく使われるループ構文です。繰り返す回数があらかじめ決まっている

  2. Cプログラムを機械語に変換する4つのステップを徹底解説

    プログラムの作成と実行の流れプログラムとは、プログラミング言語で記述された一連の命令の集まりです。プログラマーの仕事は、プログラムを作成し、その動作を確認することです。Cプログラムを機械語に変換して実行可能な形にするまでには、次の4つのステップが必要です。プログラムの作成と編集プログラムのコンパイルプログラムのリンクプログラムの実行1. プログラムの作成と編集プログラムの作成には「テキストエディタ」を使用します。テキストエディタを使えば、文字データの入力・修正・保存が自由に行えます。多くの場合、コンパイラには専用のテキストエディタが付属しています。プログラムを書き終えたら、ファイルとしてディス