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

C言語で入力文字が英字・数字・特殊文字のいずれかを判定する方法


このセクションでは、C言語において、入力された1文字が英字(アルファベット)数字特殊文字のどれに該当するかを判定する方法を解説します。

英字は「A〜Z」および「a〜z」の範囲、数字は「0〜9」の範囲に含まれます。そして、これら以外のすべての文字が特殊文字として分類されます。つまり、この基準に基づいて条件分岐を行えば、入力された文字の種類を簡単に判別できるのです。

判定のロジック

文字の種類を判定する手順は以下の通りです。

  • 文字コードの比較により、大文字(A〜Z)または小文字(a〜z)の範囲内であれば → 英字
  • '0' から '9' の範囲内であれば → 数字
  • いずれの条件にも該当しなければ → 特殊文字

C言語では char 型の値は内部的に ASCII コードとして扱われるため、「>=」や「<=」といった比較演算子を使って文字の範囲を直接判定できます。

サンプルコード

#include <stdio.h>
#include <conio.h>

main() {
    char ch;
    printf("Enter a character: ");
    scanf("%c", &ch);
    if((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z'))
        printf("This is an alphabet");
    else if(ch >= '0' && ch <= '9')
        printf("This is a number");
    else
        printf("This is a special character");
}

プログラムのポイント

  • scanf("%c", &ch) によって、キーボードから入力された1文字を読み込みます。
  • 最初の if 文で、大文字・小文字どちらの英字であるかを論理 OR 演算子(||)でまとめて判定しています。
  • 英字でも数字でもない場合は、else ブロックで特殊文字として処理されます。

実行結果

■ 大文字の英字を入力した場合:

Enter a character: F
This is an alphabet

■ 小文字の英字を入力した場合:

Enter a character: r
This is an alphabet

■ 数字を入力した場合:

Enter a character: 7
This is a number

■ 特殊文字を入力した場合:

Enter a character: #
This is a special character

補足:標準ライブラリ関数を使う方法

上記のような手動での範囲比較以外にも、<ctype.h> ヘッダーに用意されている標準ライブラリ関数を利用すると、より簡潔に記述できます。

  • isalpha(ch) … 英字かどうかを判定
  • isdigit(ch) … 数字かどうかを判定

これらの関数は移植性も高く、実務のコードではこちらを使用するのが一般的です。ただし、文字コードの仕組みを理解する練習としては、範囲比較による実装も非常に有益です。


  1. JavaScriptで入力値が数字か文字かを判定する方法【isNaN()関数の使い方】

    入力された値が数字か文字(数値以外)かを判定するには、JavaScriptのisNaN()関数を使用します。この関数は、値がNaN(Not a Number:非数)である場合にtrueを返します。この特性を利用することで、ユーザーが入力した値が数値かどうかを簡単にチェックできます。 isNaN()関数とは isNaN()は「is Not a Number」の略称です。引数として渡された値が数値として解釈できない場合にtrueを、数値として解釈できる場合はfalseを返します。これにより、「入力内容が数字かどうか」をシンプルに判定できるのが特徴です。 サンプルコード 以下のコードでは、フォームの

  2. Swiftで文字列に特殊文字が含まれているか判定する2つの方法

    Swiftで文字列に特殊文字が含まれているかどうかを確認したい場合、if文やswitch文による条件分岐でも実現できますが、その場合は膨大な条件式を記述する必要があり、コーディングにも実行速度にも大きな負担となってしまいます。そこで本記事では、正規表現を使う方法と、Swift標準のCharacterSetを活用する方法の2通りを、具体的なコード例とともにわかりやすく解説します。 方法1:正規表現を使って判定する まずはString型のextensionを作成し、特殊文字の有無を判定するプロパティを追加しましょう。 extension String { var containsSpeci