C99に対応した標準Cライブラリの実装レポートを行っていきます。

プロフィール 

Author:高木信尚

ホームページ
ブログ

最近の記事 

最近のコメント 

最近のトラックバック 

月別アーカイブ 

カテゴリー 

ブロとも申請フォーム 

この人とブロともになる

ホーム 全記事一覧 << 前の記事 次の記事 >>

 

2008/10/07 11:45|

 

前回に引き続き、<ctype.h>内で宣言される関数の実装についてのお話です。前回は英数字の判別についてでしたので、今回はそれ以外の表示文字についてです。それ以外の表示文字というのは、具体的には、区切り文字と空白文字があります。早速コードを見てみましょう。

static __inline__ int ispunct(int c)
{
  return __ctype[c] & _PUNCT;
}

上記は、区切り文字の判別を行う関数です。区切り文字と英数字を含めた、表示文字かどうかの判別は次の関数で行います。

static __inline__ int isgraph(int c)
{
  return __ctype[c] & (_LOWER|_UPPER|_DIGIT|_PUNCT);
}

isgraph関数では、空白 ' ' は偽の扱いになります。空白 ' ' まで含めた表示文字の判別は、次の関数で行います。

static __inline__ int isprint(int c)
{
  return __ctype[c] & (_LOWER|_UPPER|_DIGIT|_PUNCT|_BLANK);
}

これらの関数を用いることで、表示文字、あるいは印字可能な文字かどうかの判別を行うことができます。

前回取り上げた関数同様、これらの関数も外部定義が必要になります。今後も、特に触れない限り、ヘッダ内でインライン関数として定義した関数は、別途外部関数を定義する必要が発生します。
2006/02/08 01:03|文字種別TB:0CM:0

コメント
コメントの投稿

管理者にだけ表示を許可する


トラックバック
トラックバックURLはこちら
http://libc.blog47.fc2.com/tb.php/24-a9240325

ホーム 全記事一覧 << 前の記事 次の記事 >>

ブログ内検索 

お勧め書籍 

RSSフィード 

リンク 

このブログをリンクに追加する

Powered By FC2ブログ 

Powered By FC2ブログ
ブログやるならFC2ブログ

Copyright(C) 2006 TAKAGI Nobuhisa All rights reserved.
Powered by FC2ブログ. 無料ホームページ アフィリエイト レンタルサーバー FC2ブログ 一戸建て template designed by 遥かなるわらしべ長者への挑戦.