strstr
, , wcsstr
, , _mbsstr
_mbsstr_l
Zwraca wskaźnik do pierwszego wystąpienia ciągu wyszukiwania w ciągu.
Ważne
_mbsstr
nie 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 str
elemecie , 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 str
wartość .
Uwagi
Funkcja strstr
zwraca wskaźnik do pierwszego wystąpienia strSearch
elementu w str
pliku . 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_CTYPE
ustawień 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