先頭へ戻る

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

Programming Place Plus トップページ -- C言語編 -- 標準ライブラリのリファレンス(名前順)

Programming Place Plus トップページ -- C言語編 -- 標準ライブラリのリファレンス(ヘッダ別)

先頭へ戻る

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 に保存 Facebook でシェア
Twitter でツイート Twitter をフォロー LINE で送る
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー