Freigeben über


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.

SicherheitshinweisSicherheitshinweis

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

System::String::IndexOf

Siehe auch

Referenz

Zeichenfolgenbearbeitung (CRT)

Locale

Interpretation von Mehrbytezeichensequenzen

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