strncasecmp() — 大/小文字を区別しないストリングの比較
フォーマット
#include <strings.h>
int strncasecmp(const char *string1, const char *string2, size_t count);
言語レベル
XPG4
スレッド・セーフ
はい
ロケール依存
この関数の振る舞いは、現行ロケールの LC_CTYPE カテゴリーの影響を受ける可能性があります。この関数は、コンパイル・コマンドに対して LOCALETYPE(*CLD) が指定されている場合には使用できません。詳細については、CCSID およびロケールの理解を参照してください。
説明
strncasecmp() 関数は、string1 と string2 の最大 count 文字を 大/小文字の区別なしで比較します。string1 および string2 内のすべての英字は、比較の前に小文字に変換されます。
strncasecmp() 関数は、ヌル終了ストリング上で作動します。 関数のストリング引数には、ストリングの終わりを示すマークであるヌル文字 ('¥0') が含まれると想定されます。
戻り値
strncasecmp() 関数は、2 つのストリング間の関係を示す次のような値を 戻します。
値 | 意味 |
---|---|
0 より小さい値 | string1 は string2 より小さい |
0 | string1 は string2 と等しい |
0 より大きい値 | string1 は string2 より大きい |
例
この例では strncasecmp() を使用して、2 つのストリングを比較します。
#include <stdio.h>
#include <strings.h>
int main(void)
{
char_t *str1 = "STRING ONE";
char_t *str2 = "string TWO";
int result;
result = strncasecmp(str1, str2, 6);
if (result == 0)
printf("Strings compared equal.¥n");
else if (result < 0)
printf("¥"%s¥" is less than ¥"%s¥".¥n", str1, str2);
else
printf("¥"%s¥" is greater than ¥"%s¥".¥n", str1, str2);
return 0;
}
/******** The output should be similar to: ***************
Strings compared equal.
***********************************/