C言語,iscntrl()関数で文字が制御文字かどうかを確認する

スポンサーリンク

鍛錬 713

C言語,iscntrl()関数で文字が制御文字かどうかを確認する

指定した文字が、改行コードやタブコードなどの制御文字かどうかを確認するには、iscntrl()関数を使用します。
 
以下は、iscntrl()関数についてです。

#include <ctype.h>

int iscntrl(int c);
 

引数

以下は、上記の引数についてです。

引数 意味
int c 確認対象の文字

戻り値

以下は、戻り値についてです。

戻り値
int 制御文字の場合 0 以外
int 制御文字以外の場合 0
スポンサーリンク

プログラム

以下は、指定した文字が制御文字かどうかを確認するプログラム、test_iscntrl.c です。

今回は、文字「改行コード(\n)」「NULL文字(\0)」「A」について確認しています。

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

// main
int main(void)
{
	int c;
	int ret;
	
	// 文字が制御文字かどうかを確認
	
	// --------------------------------------------------------------
	printf("1回目の確認:");
	c = '\n';
	ret = iscntrl(c);
	if (ret != 0) {
		printf("[\\n]は制御文字です\n");
	}
	else if (ret == 0) {
		printf("[\\n]は制御文字ではありません\n");
	}
	
	// --------------------------------------------------------------
	printf("2回目の確認:");
	c = '\0';
	ret = iscntrl(c);
	if (ret != 0) {
		printf("[\\0]は制御文字です\n");
	}
	else if (ret == 0) {
		printf("[\\0]は制御文字ではありません\n");
	}
	
	// --------------------------------------------------------------
	printf("3回目の確認:");
	c = 'A';
	ret = iscntrl(c);
	if (ret != 0) {
		printf("[A]は制御文字です\n");
	}
	else if (ret == 0) {
		printf("[A]は制御文字ではありません\n");
	}
	
	return 0;
}
スポンサーリンク

実行結果

以下は、プログラム test_iscntrl.c を実行しています。

***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ gcc -Wall -Wextra test_iscntrl.c -o test_iscntrl
***@ubuntu:~/***/test/c$ ./test_iscntrl
1回目の確認:[\n]は制御文字です
2回目の確認:[\0]は制御文字です
3回目の確認:[A]は制御文字ではありません

 
上記に示した通り、指定した文字が制御文字かどうかを確認することができました。

タイトルとURLをコピーしました