Aracılığıyla paylaş


strcmp wcscmp, _mbscmp

Dizeleri karşılaştırmak.

Önemli

_mbscmpyürütün uygulamalarda kullanılamaz Windows Çalışma Zamanı.Daha fazla bilgi için bkz: /zw ile desteklenmeyen crt işlevlerinin.

int strcmp(
   const char *string1,
   const char *string2 
);
int wcscmp(
   const wchar_t *string1,
   const wchar_t *string2 
);
int _mbscmp(
   const unsigned char *string1,
   const unsigned char *string2 
);

Parametreler

  • string1, string2
    Karşılaştırmak için boşlukla sonlandırılmış dizeler.

Dönüş Değeri

Bu işlevlerden her biri için dönen değer, lexicographic ilişkisini gösterir string1 için string2.

Value

Dize1 Dize2 için arasındaki ilişki

< 0

string1olduğu küçüktürstring2

0

string1aynıdırstring2

> 0

string1büyüktürstring2

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

Notlar

strcmp İşlev karşılaştırır string1 ve string2 lexicographically ve aralarındaki ilişkiyi gösteren bir değeri döndürür. wcscmpve _mbscmp , sırasıyla, geniş karakter ve çok baytlı karakter sürümleridir strcmp. _mbscmpGeç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ı. Ayrıca, string1 veya string2 null bir işaretçidir, _mbscmp açıklandığı gibi geçersiz bir parametre işleyicisini çağırır Parametre doğrulama. Yürütülmesine devam etmek için izin verilip verilmediğini _mbscmp döndüren _NLSCMPERROR ve errno için EINVAL. strcmpve wcscmp kendi parametreleri doğrulamaz. Bu üç işlevi aynı şekilde aksi davranır.

Genel metin eşlemeleri yordamına girildi

TCHAR.H yordamına girildi

_UNICODE & _mbcs tanımlanmamış

Tanımlanan _mbcs

Tanımlanan _UNICODE

_tcscmp

strcmp

_mbscmp

wcscmp

strcmp İşlevleri farklı dan strcoll işlevleri, strcmp karşılaştırmaları ise yerel ayarı tarafından etkilenmez şekilde strcoll karşılaştırmalar tarafından belirlenir LC_COLLATE yerel kategorisi. Hakkında daha fazla bilgi için LC_COLLATE kategorisi, bkz: setlocale, _wsetlocale.

"c" yerel ayarını (ASCII karakter kümesi) karakter kümesindeki karakterlerin sırasını lexicographic karakter sırası ile aynıdır. Ancak, diğer yerel ayarlar karakter kümesindeki karakterlerin sırasını lexicographic siparişten farklı olabilir. Örneğin, Avrupa belirli yerel ayarlarda karakteri 'a' (değer 0x61) 'ä' (0xE4) karakter değerini, karakter karakterinden önce gelen 'ä' önündeki karakteri 'a' lexicographically.

Lexicographic karakter sırası ve karakter kümesi için farklı yerel ayarlarda kullanmak strcoll yerine strcmp göre dizeleri lexicographic karşılaştırma için LC_COLLATE kategori geçerli yerel ayarı. Yukarıdaki örnekte yerel lexicographic Karþýlaþtýrmasý gerçekleştirmek için strcoll yerine strcmp. Alternatif olarak, kullanabileceğiniz strxfrm sonra özgün dizeleri kullanmak strcmp elde edilen dizeler.

_stricmp, _wcsicmp, ve _mbsicmp ilk onları küçük formlarına dönüştürerek dizeleri karşılaştırmak. 'z' arasında bulunan karakterleri içeren iki dizeleri ve ASCII tablosundaki ' a' ('[','\', '] ','^','_', ve '`') kendi durumunuza bağlı olarak farklı şekilde karşılaştırın. Örneğin, iki dizeyi "ABCDE" ve "ABCD^" karşılaştırma küçük ise bir yolu karşılaştır ("abcde" > "abcd^") ve başka bir şekilde ("ABCDE" < "ABCD^") karşılaştırma büyük ise.

Gereksinimler

Yordamı

Gerekli başlık

strcmp

<string.h>

wcscmp

<string.h> veya <wchar.h>

_mbscmp

<mbstring.h>

Ek uyumluluk bilgileri için bkz: Uyumluluk.

Kitaplıkları

Tüm sürümleri c çalışma zamanı kitaplıkları.

Örnek

// crt_strcmp.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::CompareOrdinal

Ayrıca bkz.

Başvuru

Dize işlemleri (crt)

memcmp, wmemcmp

_memicmp, _memicmp_l

strcoll işlevleri

_stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

strspn, wcsspn, _mbsspn, _mbsspn_l

strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l