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 in Anwendungen, die in Windows-Runtime ausgeführt werden, nicht verwendet werden.Weitere Informationen finden Sie unter CRT-Funktionen nicht mit /ZW unterstützt.
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 in str nicht angezeigt wird. 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 umfasst keine abschließenden Nullzeichen. wcsstr ist die Breitzeichenversion von strstr, und _mbsstr ist die Multibytezeichenversion. Die Argumente und der Rückgabewert von wcsstr sind Breitzeichen-Zeichenfolgen; die von _mbsstr sind Mehrbyte-Zeichenfolgen. _mbsstr überprüft die eigenen Parameter. Wenn str oder strSearch den Wert NULL aufweist, wird der Handler für ungültige Parameter aufgerufen, wie in Parametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, legt _mbsstrerrno auf EINVAL fest und gibt 0 zurück. strstr und wcsstr überprüfen ihre Parameter nicht. Diese drei Funktionen verhalten sich andernfalls identisch.
![]() |
---|
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 _CONST_CORRECT_OVERLOADS wird definiert, wenn sowohl die const-Version als auch die Nicht-const-Version dieser Funktionen verfügbar sind. Wenn Sie das Nicht-const-Verhalten für beide C++-Überladungen benötigen, definieren Sie das Symbol _CONST_RETURN.
Der Ausgabewert ist von der LC_CTYPE-Kategorieneinstellung des Gebietsschemas betroffen; weitere Informationen finden Sie unter setlocale, _wsetlocale. Die Versionen dieser Funktionen, die das _l-Suffix nicht verwenden, verwenden das aktuelle Gebietsschema für dieses vom Gebietsschema abhängige Verhalten. Die Versionen mit dem _l-Suffix sind beinahe identisch, verwenden jedoch stattdessen den übergebenen Gebietsschemaparameter. Weitere Informationen finden Sie unter Locale.
Zuordnung generischer Textroutinen
TCHAR.H-Routine |
_UNICODE & _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tcsstr |
strstr |
_mbsstr |
wcsstr |
nicht verfügbar |
nicht verfügbar |
_mbsstr_l |
nicht verfügbar |
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 );
}
.NET Framework-Entsprechung
Siehe auch
Referenz
Zeichenfolgenbearbeitung (CRT)
Interpretation von Mehrbytezeichensequenzen
strcspn, wcscspn, _mbscspn, _mbscspn_l
strpbrk, wcspbrk, _mbspbrk, _mbspbrk_l
strrchr, wcsrchr, _mbsrchr, _mbsrchr_l