サイトマップ / 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 ) |
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言語講座−それ自体コンパイルできる教材を使った講座です−