strstr
, wcsstr
, _mbsstr
, _mbsstr_l
Gibt einen Zeiger auf das erste Vorkommen einer Suchzeichenfolge in einer Zeichenfolge zurück.
Wichtig
_mbsstr
und _mbsstr_l
können nicht in Anwendungen verwendet werden, die in Windows-Runtime ausgeführt werden. Weitere Informationen finden Sie im Artikel CRT functions not supported in Universal Windows Platform apps (In Apps für die universelle Windows-Plattform nicht unterstützte CRT-Funktionen).
Syntax
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
Parameter
str
Zu suchende mit NULL endende Zeichenfolge.
strSearch
Zu suchende mit NULL endende Zeichenfolge.
locale
Zu verwendendes Gebietsschema.
Rückgabewert
Gibt einen Zeiger auf das erste Vorkommen von strSearch
"in str
" zurück, oder NULL
wenn strSearch
er nicht angezeigt wird str
. Wenn strSearch
auf eine Zeichenfolge der Länge 0 (Null) zeigt wird, gibt die Funktion str
zurück.
Hinweise
Die strstr
-Funktion gibt einen Zeiger auf das erste Vorkommen von strSearch
in str
zurück. Die Suche enthält nicht das Beenden von NULL-Zeichen. wcsstr
ist die Breitzeichenversion von strstr
, und _mbsstr
ist die Multibytezeichenversion. Die Argumente und der Rückgabewert wcsstr
sind Zeichenfolgen mit breitem Zeichen. Die Argumente und der Rückgabewert sind _mbsstr
Multibyte-Zeichenfolgen. _mbsstr
überprüft die eigenen Parameter. Wenn str
oder strSearch
ist NULL
, wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, legt _mbsstr
errno
auf EINVAL
fest und gibt 0 zurück. strstr
und wcsstr
überprüfen Sie ihre Parameter nicht. Diese drei Funktionen verhalten sich andernfalls identisch.
Wichtig
Diese Funktionen können eine Bedrohung aufgrund eines Pufferüberlaufproblems darstellen. Pufferüberlaufprobleme können für Angriffe auf ein System eingesetzt werden, da sie die Ausführung von willkürlichem Code ermöglichen können, was zur einer unbefugten Ausweitung der Berechtigungen führen kann. Weitere Informationen finden Sie unter Vermeiden von Pufferüberläufen.
In C akzeptieren diese Funktionen einen const
-Zeiger als erstes Argument. In C++ sind zwei Überladungen verfügbar. Die Überladung, die einen Zeiger auf const
akzeptiert, gibt einen Zeiger auf const
zurück, und die Version, die einen Zeiger auf Nicht-const
akzeptiert, gibt einen Zeiger auf Nicht-const
zurück. Das Makro _CRT_CONST_CORRECT_OVERLOADS
wird definiert, wenn sowohl die const
Als auch die Nicht-Versionconst
dieser Funktionen verfügbar sind. Wenn Sie das Nicht-Verhalten für beide C++-const
Überladungen benötigen, definieren Sie das Symbol _CONST_RETURN
.
Der Ausgabewert wird durch die Gebietsschemakategorieeinstellung von LC_CTYPE
; für weitere Informationen, siehe setlocale
, . _wsetlocale
Die Versionen dieser Funktionen, die nicht über das _l
Suffix verfügen, verwenden das aktuelle Gebietsschema für dieses gebietsschemaabhängige Verhalten. Die Versionen mit dem _l
Suffix sind identisch, mit der Ausnahme, dass sie stattdessen den gebietsschemaparameter verwenden, der übergeben wird. Weitere Informationen finden Sie unter Locale.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.
Generische Textroutinzuordnungen
TCHAR.H Routine |
_UNICODE und _MBCS nicht definiert |
_MBCS Definiert |
_UNICODE Definiert |
---|---|---|---|
_tcsstr |
strstr |
_mbsstr |
wcsstr |
Nicht zutreffend | Nicht zutreffend | _mbsstr_l |
Nicht zutreffend |
Anforderungen
Routine | Erforderlicher Header |
---|---|
strstr |
<string.h> |
wcsstr |
<string.h> oder <wchar.h> |
_mbsstr , _mbsstr_l |
<mbstring.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// 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
Siehe auch
Zeichenfolgenmanipulation
Gebietsschema
Interpretation von Multibyte-Zeichensequenzen
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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für