C言語編 標準ライブラリのリファレンス strcoll

先頭へ戻る

strcoll関数

概要 ロケール特有の基準に沿って、文字列を比較する
ヘッダ string.h
形式 int strcoll(const char* s1, const char* s2);
引数 s1 比較対象の文字列。
s2 比較対象の文字列。
戻り値 現ロケールの基準で s1 の方が小さければ(前に来れば) 0 より小さい値が、s1 の方が大きければ(後に来れば) 0 より大きい値が、s1 と s2 が同じであれば 0 が返される。
詳細 ロケールの LC_COLLATEカテゴリの影響を受ける。
注意
使用例
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>

int main(void)
{
    /* LC_COLLATE をネイティブロケールに変更 */
    if( setlocale( LC_COLLATE, "" ) == NULL ){
        fputs( "ロケールの設定に失敗しました。\n", stderr );
        return EXIT_FAILURE;
    }

    printf( "%d\n", strcoll("abc", "abc") );
    printf( "%d\n", strcoll("abc", "ab") );
    printf( "%d\n", strcoll("abc", "abc123") );

    return 0;
}

実行結果

0
1
-1
関連 ワイド文字列版の wcscoll関数がある。
また、ロケールを考慮した文字列比較の効率を向上する目的で、strxfrm関数が使える。
ロケールの影響を受けない比較関数として、strcmp関数memcmp関数などがある。
解説章


参考リンク



更新履歴

'2018/4/27 新規作成。



標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ


はてなブックマーク Pocket に保存 Twitter でツイート Twitter をフォロー
Facebook でシェア Google+ で共有 LINE で送る rss1.0 取得ボタン RSS
管理者情報 プライバシーポリシー