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 _mbsstrerrno 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