strstr, wcsstr, _mbsstr, _mbsstr_l
Zwraca wskaźnik do pierwszego wystąpienia wyszukiwanego ciągu znaków w ciągu.
Waż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ń |
---|
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
Zobacz też
Informacje
Interpretacja wielobajtowych sekwencji znaków
strcspn, wcscspn, _mbscspn, _mbscspn_l
strpbrk, wcspbrk, _mbspbrk, _mbspbrk_l
strrchr, wcsrchr, _mbsrchr, _mbsrchr_l