C言語 現在のロケールで文字列の比較 - string.h - [ strcoll ]
2008.11.19 Wednesday | by LRESULT
現在のロケールで文字列の比較をするには、strcoll()を使用します。
strcmp()との違いは、ロケールのLC_COLLATEの設定を"JPN"にする事によって、
日本語(辞書順)での大小関係を比較出来ることのようです。
また、単純に文字列の一致判定をする場合には、strcmp()で事足ります。
書式 | char* strcoll( const char *s1, const char *s2 ) |
---|---|
機能 | 現在のロケールで文字列の比較 |
引数 | const char *s1 : 比較する文字列 const char *s2 : 比較する文字列 |
戻り値 | s1 < s2 : 負の値 s1 = s2 : 0 s1 > s2 : 正の値 |
strcoll()と、strcmp()の違いを見る為に 文字列「ABCD」と「abcd」の比較を両方の関数でしてみます。 |
---|
#include <stdio.h> |
-1 1 |
---|
と、表示されます。 strcmp()では文字コードで判定しているのに対して、 strcoll()では辞書順で判定している為に、こういう違いが出てくるようです。 |