|
|
|
| 2008/10/07 11:39||▲
|
|
|
しばらく更新をサボっていました。しかも、ほとんどセットものであるmbtowc、wctomb、mbstowcsと書いたのに、なぜかwcstombsだけ残っていました。というわけで、今回はwcstombs関数です。といっても、"C"ロケールにしか対応しなければ、やることはmbstowcs関数とほとんど同じです。
#include <stddef.h>
size_t wcstombs(char * __restrict__ s, const wchar_t * __restrict__ pwcs, size_t n) { register char *p = s; for (char *t = p + n; p != t && (*p = (unsigned char)*pwcs) != '\0'; p++, pwcs++) ; return p - s; }
後になって気付いたのですが、ワイド文字の値がUCHAR_MAXより大きい場合はエラーにした方がよいのかもしれません。いや、多分そうすべきなのでしょう。これについては、<wchar.h>ヘッダの実装時に改めて検討しなおすことにしたいと思います。
|
| 2006/06/28 11:43|一般ユーティリティ|TB:0|CM:0|▲
|
|
|
コメント
|
|
コメントの投稿
|
|
|
|
|
トラックバック
|
トラックバックURLはこちら
http://libc.blog47.fc2.com/tb.php/73-cb515212
|
|
|
|
|
ホーム
全記事一覧
<< 前の記事
次の記事 >>
|