strcoll() — ストリングの比較
形式
#include <string.h>
int strcoll(const char *string1, const char *string2);言語レベル
ANSI
スレッド・セーフ
はい
ロケール依存
この関数の振る舞いは、現行ロケールの LC_COLLATE カテゴリーの影響を受ける可能性があります。 詳しくは、 CCSID とロケールについてを参照してください。
説明
strcoll() 関数は、プログラムのロケールで指定された照合シーケンスを使用して、2 つのストリングを比較します。
戻り値
strcoll() 関数は、以下に示すように、ストリング間の関係を示す値を戻します。| 値 | 意味 |
|---|---|
| 0 より小さい値 | string1 より小 string2 |
| 0 | string1 は string2 と同等です |
| 0 より大きい | string1 より大 string2 |
strcoll() が正常に実行されなかった場合は、errno が変更されます。 errno の値は EINVAL に設定されます (string1 または string2 引数に、
現行ロケールで使用できない文字が含まれています)。例
この例では、
strcoll()を使用して main() に渡される 2 つのストリングを比較します。#include <stdio.h>
#include <string.h>
int main(int argc, char ** argv)
{
int result;
if ( argc != 3 )
{
printf( "Usage: %s string1 string2\n", argv[0] );
}
else
{
result = strcoll( argv[1], argv[2] );
if ( result == 0 )
printf( "\"%s\" is identical to \"%s\"\n", argv[1], argv[2] );
else if ( result < 0 )
printf( "\"%s\" is less than \"%s\"\n", argv[1], argv[2] );
else
printf( "\"%s\" is greater than \"%s\"\n", argv[1], argv[2] );
}
}
/****************** If the input is the strings ***********************
**************** "firststring" and "secondstring", ********************
****************** then the expected output is: *****************
"firststring" is less than "secondstring"
*/