__wcsicmp() — 大/小文字の区別をしないワイド文字ストリングの比較

フォーマット

#include <wchar.h>
int __wcsicmp(const wchar_t *string1, const wchar_t *string2);

言語レベル

Extension

スレッド・セーフ

はい

ロケール依存

コンパイル・コマンドで LOCALETYPE(*LOCALE) が指定される場合、この関数の振る舞いは、現行ロケールの LC_CTYPE カテゴリーの影響を受ける可能性があります。また、コンパイル・コマンドで LOCALETYPE(*LOCALEUCS2) または LOCALETYPE(*LOCALEUTF) が指定される場合、この関数の振る舞いは、 現行ロケールの LC_UNI_CTYPE カテゴリーの影響も受ける可能性があります。 この関数は、コンパイル・コマンドに対して LOCALETYPE(*CLD) が指定されている場合には使用できません。詳細については、CCSID およびロケールの理解を参照してください。

ワイド文字関数

詳細については、ワイド文字を参照してください。

説明

__wcsicmp() 関数は、string1string2 を大/小文字の区別なしで比較します。string1string2 のすべての英字ワイド文字は、比較の前に小文字に変換されます。この関数は、ヌル終了ワイド文字ストリング上で作動します。 この関数のストリング引数には、ストリングの終わりを示す wchar_t ヌル文字 (L'¥0') が含まれていなければなりません。

戻り値

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

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

この例では __wcsicmp() を使用して、2 つのワイド文字ストリングを 比較します。
#include <stdio.h>
#include <wchar.h>

int main(void)
{
  wchar_t *str1 = L"STRING";
  wchar_t *str2 = L"string";
  int result;

  result = __wcsicmp(str1, str2);

  if (result == 0)
    printf("Strings compared equal.¥n");
  else if (result < 0)
    printf("¥"%ls¥" is less than ¥"%ls¥".¥n", str1, str2);
  else
    printf("¥"%ls¥" is greater than ¥"%ls¥".¥n", str1, str2);

  return 0;
}

/********  The output should be similar to: ***************

Strings compared equal.

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