Udostępnij za pośrednictwem


strstr, wcsstr, _mbsstr, _mbsstr_l

Zwraca wskaźnik do pierwszego wystąpienia wyszukiwanego ciągu znaków w ciągu.

Ważna uwagaWażne

_mbsstr i _mbsstr_l nie można używać w aplikacjach korzystających ze Środowisko wykonawcze systemu Windows.Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane przez /ZW.

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

Parametry

  • str
    Ciąg zakończony wartością null do przeszukania.

  • strSearch
    Szukany ciąg zakończony wartością null.

  • locale
    Ustawienia regionalne do użycia.

Wartość zwracana

Zwraca wskaźnik do pierwszego wystąpienia strSearch w str lub NULL, jeśli strSearch nie występuje w str.Jeśli strSearch wskazuje ciąg o zerowej długości, funkcja zwraca str.

Uwagi

Funkcja strstr zwraca wskaźnik do pierwszego wystąpienia strSearch w str.Wyszukiwanie nie obejmuje kończących się pustych znaków.wcsstr jest wersją ze znakami dwubajtowymi strstr a _mbsstr jest wersją znaków wielobajtowych.Argumenty i wartość zwracana przez wcsstr są ciągami szerokich znaków; te z _mbsstr są ciągami znaków wielobajtowych._mbsstr sprawdza poprawność parametrów.Jeśli str lub strSearch ma wartość NULL, zostanie wywołana procedura obsługi nieprawidłowego parametru, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może być kontynuowane, _mbsstr ustawia errno jako EINVAL i zwraca 0.strstr i wcsstr nie sprawdza poprawności ich parametrów.Te trzy funkcje w innych wypadkach zachowują się identycznie.

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

Te funkcje mogą spowodować zagrożenie przez problem przepełnienie buforu.Problemy z przepełnieniem buforu mogą służyć do ataku na system, ponieważ pozwalają one na wykonywanie kodu, co może spowodować nieuzasadnione podniesienie uprawnień.Aby uzyskać więcej informacji, zobacz unikanie przekroczenia buforu.

W języku C, te funkcje podejmują wskaźnik const dla pierwszego argumentu.W języku C++ dostępne są dwa przeciążenia.Przeciążenie, które podnosi wskaźnik do const zwraca wskaźnik do const; wersja, która ma wskaźnik do non -const zwraca wskaźnik do non -const._CONST_CORRECT_OVERLOADS makro jest zdefiniowany, jeśli oba const i nie const wersje tych funkcji są dostępne.Jeśli wymagasz zachowania nie-const dla obu przeciążeń C++, określ symbol _CONST_RETURN.

Wartość wyjściowa jest zależna od konfiguracji ustawień regionalnych kategorii LC_CTYPE; aby uzyskać więcej informacji, zobacz setlocale, _wsetlocale.Wersje tych funkcji, które nie mają przyrostka _l, używają bieżących ustawień regionalnych dla zachowań zależnych od ustawień lokalnych; wersje, które mają przyrostek _l są identyczne, z tą różnicą, że korzystają z przekazanego parametru ustawień regionalnych.Aby uzyskać więcej informacji, zobacz Regionalne.

Rutynowe mapowania zwykłego tekstu

Procedura Tchar.h

_UNICODE & _MBCS nie zdefiniowano

_MBCS zdefiniowano

_UNICODE zdefiniowany

_tcsstr

strstr

_mbsstr

wcsstr

Nie dotyczy

Nie dotyczy

_mbsstr_l

Nie dotyczy

Wymagania

Procedura

Wymagany nagłówek

strstr

<Ciąg>

wcsstr

<ciągo.h> lub <wchar.h>

_mbsstr, _mbsstr_l

<mbCiąg.h>

Aby uzyskać więcej informacji dotyczących zgodności, zobacz Zgodność.

Przykład

// 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 );
}
  

Odpowiednik w programie .NET Framework

System::String::IndexOf

Zobacz też

Informacje

Manipulowanie ciągami (CRT)

Regionalne

Interpretacja wielobajtowych sekwencji znaków

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