strnicmp() — 大/小文字の区別をしないサブストリングの比較

形式

#include <string.h>
int strnicmp(const char *string1, const char *string2, int n);
注: strnset 関数および strset 関数は、C++ プログラムで使用できます。 __cplusplus__strings__ マクロがプログラムで定義されている場合にのみ、C でも使用できます。

言語レベル

拡張機能

スレッド・セーフ

はい

ロケール依存

この関数の振る舞いは、現行ロケールの LC_CTYPE カテゴリーの影響を受ける可能性があります。 詳しくは、 CCSID とロケールについてを参照してください。

説明

strnicmp() 関数は、 string1 および string2 の最初の n 文字を大/小文字を区別せずに比較します。

この関数は、ヌル終了ストリング上で作動します。 関数のストリング引数には、ストリングの終わりを示すマークであるヌル文字 (\0) が含まれると想定されます。

戻り値

strnicmp() 関数は、サブストリング間の関係を示す次のような値を戻します。

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

この例では、strnicmp() を使用して、2 つのストリングを比較します。
#include <stdio.h>
#include <string.h>
int main(void)
{
   char *str1 = "THIS IS THE FIRST STRING";
   char *str2 = "This is the second string";
   int numresult;
     /* Compare the first 11 characters of str1 and str2
        without regard to case                                                */
   numresult = strnicmp(str1, str2, 11);
   if (numresult < 0)
      printf("String 1 is less than string2.\n");
   else
      if (numresult > 0)
         printf("String 1 is greater than string2.\n");
      else
         printf("The two strings are equivalent.\n");
   return 0;
}
出力は以下の通りです。
      The two strings are equivalent.

関連情報