サイトマップ / C言語講座出入り口総目次目次:関数>文字を調べる関数群

青い直線

文字を調べる関数群

青い直線

[文字の内部表現]←このソース→[文字列を浮動小数点数に変換]

/* 文字を調べる関数群 */

/* 今日は文字を調べる標準ライブラリ関数について学びます。下記にその一例を示します。

    #include <ctype.h>
    int isalpha(int c);

    例:isalpha(c);
    関数の実行結果        戻り値
    一致した場合          0以外
    一致しなかった場合    0

標準ライブラリ関数isalpha( )を使うには、ctype.h をインクルードする必要があります。isalpha( )はcが英字(a-z、A-Z)であればゼロ以外の値を、cが英字でなければゼロを返します。これに良く似た標準ライブラリ関数があります。いづれも、ctype.hをインクルードして使います。いづれも、一致したらゼロ以外の値を返します。

関数 文   字   種
int isalnum(int c); 英数字(a-z、A-Z、0-9)
int iscntrl(int c); 制御文字 ( ASCIIコードの0x0-0x1F 及び0x7F )

int isdigit(int c);

10進数(0-9)
int isgraph(int c); スペース(' ')を除く印字可能文字(ASCIIコードの0x21〜0x7E)
int islower(int c); 英小文字(a-z)
int isprint(int c); スペースを含む印字可能文字(ASCIIコードの0x20〜0x7E 0x7Fを除く)
int ispunct(int c); 区切り文字(' ' # $ % ^ ( ) " ' \ ; : [ ] { } | - _ = + / ?)
int isspace(int c); スペース(' ')と \f \n \r \t \v
int isupper(int c);< 英大文字(A-Z)

int isxdigit(int c); 16進数(0-9 A-F a-f)

ソースプログラムの説明

今日のソースプログラムは、キーボードから英大文字、小文字、数字などを1文字入力し、その文字が何かを自作の関数 CheckChar( )で判定します。自作の関数CheckChar( )は、引数としてint型の整数を引数として取り、戻り値はありません。

メインルーチンではint型のcとiを宣言します。cには、キーボードから入力した文字の値が入ります。iはforループで使われ、初期値は1です。cを引数にして、CheckChar( )を呼び出しています。CheckChar( )を作らないで、main( )関数の中に書いてもいいのですが、こうすることでソースプログラムが見やすくなります。 */

/* ここからソースプログラム */

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

void CheckChar(int c);
void main(void);

void CheckChar(int c)
{

    if (isupper(c))             /* 英大文字なら */
        printf("英大文字です。");

    else if (islower(c))        /* 英小文字なら */
        printf("英小文字です。");

    else if (isdigit(c))        /* 数字なら */
        printf("数字です。");

    else if (isspace(c))        /* スペースなら */
        printf("スペースです。");

    else                        /* 上記のいずれでもなかったら */
        printf("何かわかりません");
}

void main(void)
{
    int  c, i;

    for (i = 1; i < 5; i++) {
        printf("\n%d回目\tアルファベットや数字を入力して下さい ", i);
        c = getchar( );

        printf("あなたが入力した文字は");
        CheckChar(c);

        fflush(stdin);        /* キーボードに残っている改行コードを捨てる */
	}
}

/* ここまでソースプログラム */

/* fflush(stdin) について説明します。

    #include <stdio.h>
    int fflush(FILE *fp);

    例:fflush(fp);

    関数の実行結果    戻り値
    成功した場合        0
    失敗した場合      EOF

fflush( )は入力用に開かれているファイルの全ての内容を捨てます。出力用に開かれているファイルの場合は、全ての内容を出力します。このプログラムを実行するには、キーボードから文字を入力してから、改行キーを押します。プログラムで使っているのは1文字で、標準入力(stdin:キーボード)には改行コードが残っています。fflush( )を使って、改行コードを捨てて、getchar( )の動作を正常にします。

fflush( )の引数のデータ型 FILE については、後日、ファイルを操作する時に説明します。 */

[文字の内部表現]←このソース→[文字列を浮動小数点数に変換]

青い直線

/* (C) 2000- YFプロ. All Rights Reserved. */    提供:C言語講座−それ自体コンパイルできる教材を使った講座です−

青い直線

サイトマップ / C言語講座出入り口総目次目次:関数>文字を調べる関数群