Aracılığıyla paylaş


_stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l

Dizeleri büyük küçük harf duyarsız bir karşılaştırma gerçekleştirir.

Önemli notÖnemli

_mbsicmpve _mbsicmp_l Windows çalışma zamanı yürütme uygulamalarda kullanılamaz.Daha fazla bilgi için /ZW ile desteklenmiyor CRT işlevleri.

int _stricmp(
   const char *string1,
   const char *string2 
);
int _wcsicmp(
   const wchar_t *string1,
   const wchar_t *string2 
);
int _mbsicmp(
   const unsigned char *string1,
   const unsigned char *string2 
);
int _stricmp_l(
   const char *string1,
   const char *string2,
   _locale_t locale
);
int _wcsicmp_l(
   const wchar_t *string1,
   const wchar_t *string2,
   _locale_t locale
);
int _mbsicmp_l(
   const unsigned char *string1,
   const unsigned char *string2,
   _locale_t locale
);

Parametreler

  • string1, string2
    Karşılaştırma yapılacak sonlandırılmış dizeleri.

  • locale
    Kullanılacak yerel ayar.

Dönüş Değeri

Dönüş değeri ilişkisi gösteren string1 için string2 şekildedir.

Dönüş değeri

Açıklama

< 0

string1 küçüktür string2

0

string1 aynı string2

> 0

string1 büyüktür string2

Bir hata _mbsicmp döndürür _NLSCMPERROR, tanımlandığı < string.h içinde > ve < mbstring.h >.

Notlar

_stricmp İşlev ordinally karşılaştırır string1 ve string2 sonra her karakter küçük ve döndürür dönüştürme ilişkilerini belirten bir değer._stricmpfarklı _stricoll , _stricmp karşılaştırma tarafından etkilenen yalnızca LC_CTYPE, büyük ve küçük hangi karakterlerdir belirler._stricoll İşlevi karşılaştırır göre her ikisini dizeleri LC_CTYPE ve LC_COLLATE durum hem harmanlama sırası içerir yerel kategorisi.Hakkında daha fazla bilgi için LC_COLLATE kategorisi, bakın setlocale ve yerel ayar kategorileri.Bu işlevler sürümlerini _l soneki geçerli yerel ayarı için yerel ayar-bağımlı davranışı kullanın.Bunun yerine geçirilen yerel kullanmasını dışında sürümleri soneki ile aynıdır.Yerel ayarlanmadıysa, C yerel kullanılır.Daha fazla bilgi için bkz. Yerel Ayar.

[!NOT]

_stricmp ile _strcmpi eşdeğerdedir.Birbirinin yerine kullanılabilir ancak _stricmp tercih edilen standart'tır.

_strcmpi İşlevi eşdeğerdir _stricmp ve yalnızca geriye dönük uyumluluk için sağlanır.

Çünkü _stricmp karşılaştırmalarıyla, küçük harf beklenmeyen davranışa neden olabilir.

Ne zaman göstermek için case dönüştürme _stricmp sonucu etkiler karşılaştırmasını, iki dizeyi JOHNSTON ve JOHN_HENRY olduğunu varsayar.Dize JOHN_HENRY olarak kabul ' den küçük JOHNSTON "_" küçük s daha düşük bir ASCII değer olduğundanGerçekte ASCII değeri 91 96 arasındaki sahip herhangi bir karakter küçüktür herhangi bir harf olarak kabul edilecek.

Varsa strcmp işlevi yerine kullanılır _stricmp, JOHN_HENRY JOHNSTON büyük olacaktır.

_wcsicmpve _mbsicmp geniş karakter ve çok baytlı karakter sürümleridir _stricmp.Bağımsız değişkenleri ve dönüş değerini _wcsicmp geniş karakter dizelerdir; içeriğiyle _mbsicmp çok baytlı karakter dizelerdir._mbsicmpGeçerli çoklu bayt kod sayfası göre çok baytlı karakter sıraları tanır ve döndürür _NLSCMPERROR bir hata.Daha fazla bilgi için kod sayfaları.Bu üç işlevler aynı şekilde aksi davranır.

_wcsicmpve wcscmp dışında aynı şekilde davranır wcscmp bağımsız değişkenlerini karşılaştırma önce küçük harfe dönüştürmez._mbsicmpve _mbscmp dışında aynı şekilde davranır _mbscmp bağımsız değişkenlerini karşılaştırma önce küçük harfe dönüştürmez.

Çağırmanız gerekir setlocale için _wcsicmp Latin 1 karakter ile çalışmak için.C yerel yürürlükte varsayılan olarak, bu nedenle, örneğin, ä Ä eşit karşılaştırma değil olur.Arama setlocale çağırmadan önce C yerel dışında herhangi bir yerel ayarı ile _wcsicmp.Aşağıdaki örnek gösterir nasıl _wcsicmp için yerel duyarlıdır:

// crt_stricmp_locale.c
#include <string.h>
#include <stdio.h>
#include <locale.h>

int main() {
   setlocale(LC_ALL,"C");   // in effect by default
   printf("\n%d",_wcsicmp(L"ä", L"Ä"));   // compare fails
   setlocale(LC_ALL,"");
   printf("\n%d",_wcsicmp(L"ä", L"Ä"));   // compare succeeds
}

Çağrılacak alternatiftir _create_locale, _wcreate_locale geçirirsiniz döndürülen yerel ayar nesnesi bir parametresi olarak _wcsicmp_l.

Tüm bu işlevleri parametrelerini doğrulayın.string1 Veya string2 null işaretçileri olan açıklandığı gibi geçersiz parametre işleyici çağrılır Parametre Doğrulama .Yürütme devam etmek için izin verilip verilmediğini, bu işlevler dönmek _NLSCMPERROR ve errno için EINVAL.

Genel Metin Yordam Eşleşmeleri

TCHAR.H yordamı

_UNICODE & _MBCS tanımlanmamış

_MBCS tanımlanmış

_UNICODE tanımlanmış

_tcsicmp

_stricmp

_mbsicmp

_wcsicmp

Gereksinimler

Yordam

Gerekli başlık

_stricmp, _stricmp_l

< string.h >

_wcsicmp, _wcsicmp_l

< string.h > veya < wchar.h >

_mbsicmp, _mbsicmp_l

< mbstring.h >

Uyumluluk ek bilgi için bkz Uyumluluk.

Örnek

// crt_stricmp.c

#include <string.h>
#include <stdio.h>
#include <stdlib.h>

char string1[] = "The quick brown dog jumps over the lazy fox";
char string2[] = "The QUICK brown dog jumps over the lazy fox";

int main( void )
{
   char tmp[20];
   int result;

   // Case sensitive
   printf( "Compare strings:\n   %s\n   %s\n\n", string1, string2 );
   result = strcmp( string1, string2 );
   if( result > 0 )
      strcpy_s( tmp, _countof(tmp), "greater than" );
   else if( result < 0 )
      strcpy_s( tmp, _countof(tmp), "less than" );
   else
      strcpy_s( tmp, _countof(tmp), "equal to" );
   printf( "   strcmp:   String 1 is %s string 2\n", tmp );

   // Case insensitive (could use equivalent _stricmp)
   result = _stricmp( string1, string2 );
   if( result > 0 )
      strcpy_s( tmp, _countof(tmp), "greater than" );
   else if( result < 0 )
      strcpy_s( tmp, _countof(tmp), "less than" );
   else
      strcpy_s( tmp, _countof(tmp), "equal to" );
   printf( "   _stricmp:  String 1 is %s string 2\n", tmp );
}
  

.NET Framework Eşdeğeri

System::String::COMPARE

Ayrıca bkz.

Başvuru

Dize Düzenlemesi (CRT)

memcmp, wmemcmp

_memicmp, _memicmp_l

strcmp, wcscmp, _mbscmp

strcoll İşlevleri

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l

strspn, wcsspn, _mbsspn, _mbsspn_l