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 つのストリング間の関係を示す次のような値を 戻します。

表 1. strncasecmp() の戻り値
意味
0 より小さい値 string1string2 より小さい
0 string1string2 と等しい
0 より大きい string1string2 より大きい

この例では 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.

***********************************/

関連情報