|
|
|
| 2008/10/07 11:47||▲
|
|
|
strcmp関数はナル終端文字列を単純比較するための関数でしたが、strcoll関数はLC_COLLATEカテゴリのロケールに基づく比較を行います。具体的な比較方法は完全にライブラリの実装依存になるわけですが、抑えるべきポイントは、ロケールの設定で扱う文字コードを変更しても、順序が保たれるようにすることと、ワイド文字列用のwcscoll関数と整合性を持たせられるようにすることかと思います。
といっても、現時点ではとりあえず"C"ロケールしか考慮しないことにしていますので、小難しい実装は先送りにして、とりあえずは形式的な実装のみで済ませることにします。"C"ロケールの場合には、strcmp関数と全く同じ動作で構いません。
#include <string.h>
int strcoll(const char *s1, const char *s2) { return strcmp(s1, s2); }
効率を考えればインライン関数にするのもよいでしょうが、そもそも高速に比較したいのであれば、strcoll関数を使うこと自体が間違っているのと、いずれはロケールに対応したいということもあるので、この程度にしておきます。
|
| 2006/03/14 01:41|文字列操作|TB:0|CM:0|▲
|
|
|
コメント
|
|
コメントの投稿
|
|
|
|
|
トラックバック
|
トラックバックURLはこちら
http://libc.blog47.fc2.com/tb.php/35-998e96a8
|
|
|
|
|
ホーム
全記事一覧
<< 前の記事
次の記事 >>
|