C言語 空白判定 記号判定 制御文字判定 - ctype.h - [ isspace, ispunct, iscntrl ]
2008.08.20 Wednesday | by LRESULT
空白判定には、isspace()、記号判定には、ispunct()、
制御文字判定には、iscntrl()を使います。
書式 | int isspace( int c ) |
---|---|
機能 | 空白判定 |
引数 | int c : 判定する文字 |
戻り値 | 空白(0x20)、水平タブ(0x09)、垂直タブ(0x0B)、 改行(0x0A)、復帰(0x0D)、改頁(0x0C)であれば、0以外を返し、 そうでなければ、0を返します。 |
書式 | int ispunct( int c ) |
---|---|
機能 | 記号判定 |
引数 | int c : 判定する文字 |
戻り値 | 記号( 0x21〜0x2F, 0x3A〜0x40, 0x5B〜0x60, 0x7B〜0x7E )であれば、0以外を返し、 記号でなければ、0を返します。 |
書式 | int iscntrl( int c ) |
---|---|
機能 | 制御文字判定 |
引数 | int c : 判定する文字 |
戻り値 | 制御文字( 0x00〜0x1F, 0x7F )であれば、0以外を返し、 制御文字でなければ、0を返します。 |
文字列「Aa Bb 1-2*3 Cc」から、記号と空白の数を抽出してみます。 |
---|
#include <stdio.h> #include <ctype.h> int main(void) { int i, space_num=0; char str[] = "Aa Bb 1-2*3 Cc"; printf( "記号を抽出:" ); for( i=0; i<15; i++ ){ if( ispunct( str[i] ) != 0 ) printf( "%c", str[i] ); } printf( "¥n空白の数:" ); for( i=0; i<15; i++ ){ if( isspace( str[i] ) != 0 ) space_num++; } printf( "%d¥n", space_num ); return 0; } |
記号を抽出:-* 空白の数:3 |
---|
と、表示されます。 |