_stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l
Dizeleri küçük bir karşılaştırma gerçekleştirir.
![]() |
---|
_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
Ayrıca bkz.
Başvuru
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l
strrchr, wcsrchr, _mbsrchr, _mbsrchr_l