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

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

トップページ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"));
}

実行結果:

0
1
-1
関連

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

解説章


参考リンク 🔗

本ページはアフィリエイトプログラムによる収益を得ています。
以下のリンクから商品を購入されると、Programming Place 管理者に紹介料が支払われています。


更新履歴 🔗

 新規作成。



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

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

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

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る