Aracılığıyla paylaş


_stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l

Dizeleri küçük 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 bkz: /zw ile desteklenmeyen crt işlevlerinin.

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ırmak için boşlukla sonlandırılmış dizeler.

  • locale
    Kullanılacak yerel ayarı.

Dönüş Değeri

Dönüş değeri, bu ilişkiyi gösterir string1 için string2 gibi.

Dönüş değeri

Tanımlama

< 0

string1küçüktürstring2

0

string1aynıstring2

> 0

string1büyüktürstring2

Bir hata _mbsicmp fonksiyonu _NLSCMPERROR, dize içinde tanımlanmış.H ve MBSTRING.H.

Notlar

_stricmp İşlevi lexicographically küçük sürümlerini karşılaştırır string1 ve string2 ve aralarındaki ilişkiyi gösteren bir değeri döndürür._stricmpfarklı _stricoll , _stricmp karşılaştırma tarafından etkilenir LC_CTYPE, oysa _stricoll göre karşılaştırma yapılır LC_CTYPE ve LC_COLLATE bölgesel kategoriler.Daha fazla bilgi için LC_COLLATE kategorisi, bkz: setlocale ve Yerel ayar kategorileri.Bu işlevleri sürümlerini _l soneki yerel ayara bağımlı davranış için geçerli yerel ayarı kullanın.Bunun yerine geçirilen yerel kullandıkları dışında son sürümleriyle aynıdır.Daha fazla bilgi için bkz. Yerel ayar.

[!NOT]

_stricmpeşittir _strcmpi.Birbirlerinin yerine kullanılabilirler, ancak _stricmp için tercih edilen bir standarttır.

_strcmpi Eşdeğer işlev _stricmp ve yalnızca geriye dönük uyumluluk için sağlanır.

Çünkü stricmp , karşılaştırmalar küçük beklenmeyen davranışlara neden olabilir.

Ne zaman göstermek için küçük harf dönüştürme tarafından stricmp sonucu etkileyen bir karşılaştırmasını iki dizeyi johnston ve john_henry sahip olduğunuzu varsayalım.johnston değerinden küçük john_henry olarak kabul dize "_" küçük S.'den daha düşük bir ASCII değere sahip olduğuAslında, herhangi bir küçük harf 91 96 arasındaki ASCII değeri olan herhangi bir karakter kabul eder.

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ümleri _stricmp.Bağımsız değişkenleri ve dönüş değeri _wcsicmp geniş karakter dizesidir; _mbsicmp çok baytlı karakter dizeleridir._mbsicmpGeçerli çok baytlı kod sayfasını göre çok baytlı karakter dizilerini tanır ve döner _NLSCMPERROR bir hata.(Daha fazla bilgi için bkz: Kod sayfaları.) Bu üç işlevi aynı şekilde aksi davranır.

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

Aramanız gereken setlocale için _wcsicmp Latin 1 karakterler ile çalışmak için.c yerel etkin varsayılan olarak, bu nedenle, örneğin, ä ä eşit karşılaştırır değil olur.Call setlocale çağırmadan önce c yerel dışında herhangi bir yerel ayar ile _wcsicmp.Aşağıdaki örnek gösterir nasıl _wcsicmp 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
}

Alternatif çağırmaktır _create_locale, _wcreate_locale ve döndürülen yerel nesneyi parametre olarak geçirin _wcsicmp_l.

Tüm bu işlevleri kendi parametrelerini doğrulayın.Ya da, string1 veya string2 olan NULL işaretçiler, geçersiz bir parametre işleyici çağrıldığında, açıklandığı gibi Parametre doğrulama .Yürütülmesine devam etmek için izin verilip verilmediğini, bu işlevler dönmek _NLSCMPERROR ve errno için EINVAL.

Genel metin eşlemeleri yordamına girildi

TCHAR.H yordamına girildi

_UNICODE & _mbcs tanımlanmamış

Tanımlanan _mbcs

Tanımlanan _UNICODE

_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>

Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.

Ö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 işlemleri (crt)

memcmp, wmemcmp

_memicmp, _memicmp_l

strcmp wcscmp, _mbscmp

strcoll iş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