C言語 空白判定 記号判定 制御文字判定 - ctype.h - [ isspace, ispunct, iscntrl ]

2008.08.20 Wednesday | by LRESULT


白判定には、isspace()、記号判定には、ispunct()、

制御文字判定には、iscntrl()を使います。


isspace
書式 int isspace( int c )
機能 空白判定
引数 int c : 判定する文字
戻り値 空白(0x20)、水平タブ(0x09)、垂直タブ(0x0B)、
改行(0x0A)、復帰(0x0D)、改頁(0x0C)であれば、0以外を返し、
そうでなければ、0を返します。



ispunct
書式 int ispunct( int c )
機能 記号判定
引数 int c : 判定する文字
戻り値 記号( 0x21〜0x2F, 0x3A〜0x40,
0x5B〜0x60, 0x7B〜0x7E )であれば、0以外を返し、
記号でなければ、0を返します。



iscntrl
書式 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
と、表示されます。

カテゴリ:C言語 ctype.h | 23:45 | comments(0) | trackbacks(0) | -


コメントする











この記事のトラックバックURL

http://simd.jugem.jp/trackback/109

トラックバック