strstr, wcsstr, _mbsstr, _mbsstr_l

Bir arama dizesinin dizedeki ilk oluşumunun işaretçisini döndürür.

Önemli

_mbsstrve _mbsstr_l Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz. Daha fazla bilgi için bkz. Evrensel Windows Platformu uygulamalarında desteklenmeyen CRT işlevleri.

Sözdizimi

char *strstr(
   const char *str,
   const char *strSearch
); // C only
char *strstr(
   char *str,
   const char *strSearch
); // C++ only
const char *strstr(
   const char *str,
   const char *strSearch
); // C++ only
wchar_t *wcsstr(
   const wchar_t *str,
   const wchar_t *strSearch
); // C only
wchar_t *wcsstr(
   wchar_t *str,
   const wchar_t *strSearch
); // C++ only
const wchar_t *wcsstr(
   const wchar_t *str,
   const wchar_t *strSearch
); // C++ only
unsigned char *_mbsstr(
   const unsigned char *str,
   const unsigned char *strSearch
); // C only
unsigned char *_mbsstr(
   unsigned char *str,
   const unsigned char *strSearch
); // C++ only
const unsigned char *_mbsstr(
   const unsigned char *str,
   const unsigned char *strSearch
); // C++ only
unsigned char *_mbsstr_l(
   const unsigned char *str,
   const unsigned char *strSearch,
   _locale_t locale
); // C only
unsigned char *_mbsstr_l(
   unsigned char *str,
   const unsigned char *strSearch,
   _locale_t locale
); // C++ only
const unsigned char *_mbsstr_l(
   const unsigned char *str,
   const unsigned char *strSearch,
   _locale_t locale
); // C++ only

Parametreler

str
Arama için null ile sonlandırılan dize.

strSearch
Aranacak null sonlandırılmış dize.

locale
Kullanılacak yerel ayar.

Dönüş değeri

içinde veya içinde strgörünmüyorsa strSearch strilk örneğine strSearch bir işaretçi NULL döndürür. Sıfır uzunlukta bir dizeye işaret ederse strSearch , işlevi döndürür str.

Açıklamalar

işlevi, strstr içinde strilk geçtiği yeri strSearch işaret eden bir işaretçi döndürür. Arama null karakterleri sonlandırmayı içermez. wcsstr , geniş karakterli sürümüdür strstr ve _mbsstr çok baytlı karakter sürümüdür. bağımsız değişkenleri ve dönüş değeri wcsstr geniş karakterli dizelerdir. bağımsız değişkenleri ve dönüş değeri _mbsstr çok baytlı karakter dizeleridir. _mbsstr parametrelerini doğrular. veya str strSearch iseNULL, parametre doğrulaması bölümünde açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Yürütmenin devam etmesi için izin verilirse, _mbsstr olarak ayarlanır errno EINVAL ve 0 döndürür. strstr ve wcsstr parametrelerini doğrulamaz. Bu üç işlev aynı şekilde davranır.

Önemli

Bu işlevler arabellek taşması sorunundan kaynaklanan bir tehdit oluşturabilir. Arabelleğe taşma sorunları, isteğe bağlı kodun yürütülmesine izin verebildiği için sisteme saldırmak için kullanılabilir ve bu da ayrıcalıkların gereksiz bir şekilde yükseltilmesine neden olabilir. Daha fazla bilgi için bkz . Arabellek taşmalarından kaçınma.

C'de, bu işlevler ilk bağımsız değişken için bir const işaretçi alır. C++'ta iki aşırı yükleme kullanılabilir. İşaretçiyi öğesine götüren aşırı yükleme işaretçisini const constdöndürür; işaretçiyi olmayanaconst götüren sürüm, olmayanaconst bir işaretçi döndürür. _CRT_CONST_CORRECT_OVERLOADS Makro, bu işlevlerin const hem hem de olmayanconst sürümlerinin kullanılabilir olması durumunda tanımlanır. Her iki C++ aşırı yüklemesi için de olmayan davranışa ihtiyacınızconst varsa simgesini _CONST_RETURNtanımlayın.

Çıkış değeri yerel ayar kategorisi ayarından LC_CTYPEetkilenir; daha fazla bilgi için bkz setlocale. , _wsetlocale. Bu işlevlerin son ekine sahip _l olmayan sürümleri, bu yerel ayara bağımlı davranış için geçerli yerel ayarı kullanır; son eki olan _l sürümler, bunun yerine geçirilen yerel ayar parametresini kullanmaları dışında aynıdır. Daha fazla bilgi için bkz . Yerel Ayar.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

Genel metin yordamı eşlemeleri

TCHAR.H olağan _UNICODE ve _MBCS tanımlanmadı _MBCS tanımlanan _UNICODE tanımlanan
_tcsstr strstr _mbsstr wcsstr
Yok Yok _mbsstr_l Yok

Gereksinimler

Yordam Gerekli başlık
strstr <string.h>
wcsstr <string.h> veya <wchar.h>
_mbsstr, _mbsstr_l <mbstring.h>

Uyumluluk hakkında daha fazla bilgi için bkz . Uyumluluk.

Örnek

// crt_strstr.c

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

char str[] =    "lazy";
char string[] = "The quick brown dog jumps over the lazy fox";
char fmt1[] =   "         1         2         3         4         5";
char fmt2[] =   "12345678901234567890123456789012345678901234567890";

int main( void )
{
   char *pdest;
   int  result;
   printf( "String to be searched:\n   %s\n", string );
   printf( "   %s\n   %s\n\n", fmt1, fmt2 );
   pdest = strstr( string, str );
   result = (int)(pdest - string + 1);
   if ( pdest != NULL )
      printf( "%s found at position %d\n", str, result );
   else
      printf( "%s not found\n", str );
}
String to be searched:
   The quick brown dog jumps over the lazy fox
            1         2         3         4         5
   12345678901234567890123456789012345678901234567890

lazy found at position 36

Ayrıca bkz.

Dize işleme
Yerel ayar
Çok baytlı karakter dizilerinin yorumlanması
strcspn, wcscspn, _mbscspn, _mbscspn_l
strcmp, wcscmp, _mbscmp
strpbrk, wcspbrk, _mbspbrk, _mbspbrk_l
strrchr, wcsrchr, _mbsrchr, _mbsrchr_l
strspn, wcsspn, _mbsspn, _mbsspn_l
basic_string::find