ホーム
全記事一覧
<< 前の記事
次の記事 >>
|
|
|
mblen関数は、多バイト文字を構成するバイト数を求めるための関数です。ただし、現在のところ、扱っているのが"C"ロケールだけですので、有効な多バイト文字のバイト数は常に1になります。
この関数の基本的な機能は単純なのですが、付随する機能がいろいろとあります。
まず、引数に空ポインタを渡した場合の動作ですが、多バイト文字がシフトシーケンスに依存する場合は非0を、そうでなければ0を返します。今回の実装では、シフトシーケンスに依存するエンコーディングは使用しませんので、この場合は0を返すことになります。
次に、先頭の1バイトが'\0'の場合にも0を返します。他には、サイズとして0を渡した場合にも0を返すことになります。それでは実装です。
#include <stddef.h>
int mblen(const char *s, size_t n) { if (s == NULL || *s == '\0' || n == 0)   return 0; return 1; }
*sの値をもう少し詳しく見て、有効な文字かどうかを判別してもよいのでしょうが、とりあえずナル文字以外は何でもOKという仕様にしておきます。
スポンサーサイト
|
2006/06/13 00:16|一般ユーティリティ|TB:0|CM:0|▲
|
|
コメント
|
コメントの投稿
|
|
|
トラックバック
|
トラックバックURLはこちら
http://libc.blog47.fc2.com/tb.php/69-51a9f3eb
|
|
|
ホーム
全記事一覧
<< 前の記事
次の記事 >>
|