Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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