isgraph()関数とは?C言語の標準ライブラリ関数の使い方を解説
isgraph()関数の基本
isgraph()関数は、引数として渡された文字が「グラフィカルな表現(画面に表示できる可視的な図形)」を持つかどうかを判定するためのC言語の標準ライブラリ関数です。この関数はヘッダーファイル「ctype.h」内で宣言されているため、使用する際はプログラムの先頭でインクルードする必要があります。
なお、空白文字(スペース)は表示上の位置を占めるものの、可視的な図形を持たないため、isgraph()では偽(0)と判定される点に注意しましょう。
構文
int isgraph(int char);
引数には判定対象の文字をint型で渡します。戻り値は、文字が図形表示可能な場合に0以外の値(真)、そうでない場合に0(偽)となります。
サンプルコード
以下は、isgraph()関数の動作を確認するC言語のサンプルプログラムです。
#include<stdio.h>
#include<ctype.h>
int main() {
int a = '\n';
int b = '8';
int c = 's';
if(isgraph(a))
printf("この文字は図形表示可能です\n");
else
printf("この文字は図形表示できません\n");
if(isgraph(b))
printf("この文字は図形表示可能です\n");
else
printf("この文字は図形表示できません\n");
if(isgraph(c))
printf("この文字は図形表示可能です\n");
else
printf("この文字は図形表示できません\n");
return 0;
}実行結果
この文字は図形表示できません この文字は図形表示可能です この文字は図形表示可能です
プログラムの解説
上記のプログラムでは、3つの変数a、b、cを宣言し、それぞれ改行文字'\n'、数字'8'、英字's'で初期化しています。その後、isgraph()関数を使って各文字が図形表示可能かどうかを判定しています。
- 変数a: 改行文字'\n'は制御文字であり、可視的な図形を持たないため、偽と判定されます。
- 変数b: 数字'8'は画面に表示できる文字なので、真と判定されます。
- 変数c: 英字's'も表示可能な文字であるため、真と判定されます。
判定部分のコードは以下のようになっています。
if(isgraph(a))
printf("この文字は図形表示可能です\n");
else
printf("この文字は図形表示できません\n");if文の中でisgraph(a)を呼び出し、戻り値が0以外であれば「図形表示可能」、0であれば「図形表示不可」として処理を分岐させています。このようにisgraph()関数を使うことで、文字種別のチェックを簡単に行うことができます。
isgraph()とisprint()の違い
isgraph()とよく似た関数にisprint()があります。isprint()は空白文字(スペース)も「印刷可能な文字」として判定しますが、isgraph()はスペースを除外し、可視的な図形を持つ文字のみを真と判定します。入力値のバリデーションなど、用途に応じて両者を使い分けるとよいでしょう。
-
【PHP】ctype_cntrl()関数の使い方 – 制御文字の判定方法
ctype_cntrl()関数とはPHPのctype_cntrl()関数は、文字列に含まれるすべての文字が制御文字であるかどうかをチェックする関数です。現在のロケール設定に基づいて判定が行われ、すべての文字が制御文字であればTRUE、1つでも制御文字以外が含まれていればFALSEを返します。制御文字とは、改行(\n)、キャリッジリターン(\r)、タブ(\t)、エスケープ文字など、画面上に直接表示されない特殊な文字のことです。構文ctype_cntrl(str)パラメータstr − チェック対象の文字列を指定します。戻り値文字列内のすべての文字が現在のロケールにおける制御文
-
PHPのfgetc()関数とは?使い方とサンプルコードを解説
fgetc() 関数は、オープンされたファイルポインタから1文字を読み込むためのPHP組み込み関数です。ファイルの終端(EOF)に達した場合は false を返し、それ以外の場合は file_pointer が指すファイルから読み込んだ1文字を含む文字列を返します。 構文 fgetc(file_pointer) パラメータ file_pointer − 有効なファイルポインタである必要があります。fopen() または fsockopen() で正常にオープンされたファイル(fclose() によってまだクローズされていないもの)を指していなければなりません。 戻り値 fgetc() 関数