Udostępnij za pośrednictwem


strstr, , wcsstr, , _mbsstr_mbsstr_l

Zwraca wskaźnik do pierwszego wystąpienia ciągu wyszukiwania w ciągu.

Ważne

_mbsstrnie można jej _mbsstr_l używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows. Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane w aplikacjach platforma uniwersalna systemu Windows.

Składnia

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 wyszukania.

strSearch
Ciąg zakończony wartością null do wyszukania.

locale
Ustawienia regionalne do użycia.

Wartość zwracana

Zwraca wskaźnik do pierwszego wystąpienia strSearch elementu w strelemecie , lub NULL jeśli strSearch nie jest wyświetlany w elemecie str. Jeśli strSearch wskazuje ciąg o zerowej długości, funkcja zwraca strwartość .

Uwagi

Funkcja strstr zwraca wskaźnik do pierwszego wystąpienia strSearch elementu w strpliku . Wyszukiwanie nie zawiera znaków null zakończenia. wcsstr jest wersją wielobajtową strstr i _mbsstr jest wersją wielobajtową. Argumenty i wartość zwracana wcsstr wartości to ciągi wieloznakowe. Argumenty i wartość zwracana wartości to ciągi wielobajtowe _mbsstr znaków. _mbsstr weryfikuje jego parametry. Jeśli str lub strSearch jest NULL, wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametru . Jeśli wykonywanie jest dozwolone do kontynuowania, _mbsstr ustawia errno wartość EINVAL i zwraca wartość 0. strstr i wcsstr nie weryfikuj ich parametrów. Te trzy funkcje zachowują się identycznie inaczej.

Ważne

Te funkcje mogą powodować zagrożenie z problemu z przepełnieniem buforu. Problemy z przepełnieniem buforu mogą służyć do ataku na system, ponieważ umożliwiają wykonywanie dowolnego kodu, co może spowodować nieuzasadnione podniesienie uprawnień. Aby uzyskać więcej informacji, zobacz Unikanie przekroków buforu.

W języku C te funkcje przyjmują const wskaźnik dla pierwszego argumentu. W języku C++dostępne są dwa przeciążenia. Przeciążenie, które pobiera wskaźnik, aby const zwrócić wskaźnik do const; wersja, która przyjmuje wskaźnik do wartości innej niżconst wskaźnik, zwraca wskaźnik do wartości innejconst niż. Makro _CRT_CONST_CORRECT_OVERLOADS jest definiowane, jeśli dostępne są zarówno const wersje, jak i inneconst niż. Jeśli potrzebujesz zachowania dlaconst obu przeciążeń języka C++, zdefiniuj symbol _CONST_RETURN.

Wartość wyjściowa ma wpływ na ustawienie LC_CTYPEustawień regionalnych kategorii ; aby uzyskać więcej informacji, zobacz setlocale, _wsetlocale. Wersje tych funkcji, które nie mają sufiksu _l , używają bieżących ustawień regionalnych dla tego zachowania zależnego od ustawień regionalnych; wersje, które mają _l sufiks, są identyczne, z tą różnicą, że zamiast tego używają parametru ustawień regionalnych, który jest przekazywany. Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Mapowania procedur tekstu ogólnego

TCHAR.H rutyna _UNICODE i _MBCS niezdefiniowane _MBCS zdefiniowany _UNICODE zdefiniowany
_tcsstr strstr _mbsstr wcsstr
N/a N/a _mbsstr_l N/a

Wymagania

Procedura Wymagany nagłówek
strstr <string.h>
wcsstr <string.h> lub <wchar.h>
_mbsstr, _mbsstr_l <mbstring.h>

Aby uzyskać więcej informacji na temat 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 );
}
String to be searched:
   The quick brown dog jumps over the lazy fox
            1         2         3         4         5
   12345678901234567890123456789012345678901234567890

lazy found at position 36

Zobacz też

Manipulowanie ciągami
ustawienia regionalne
Interpretacja sekwencji znaków wielobajtowych
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