Freigeben über


strstr, wcsstr, _mbsstr, _mbsstr_l

Geben Sie einen Zeiger auf das erste Vorkommen einer Suchzeichenfolge in einer Zeichenfolge zurück.

Wichtiger HinweisWichtig

_mbsstr und _mbsstr_l können in Anwendungen nicht verwendet werden, die in der Windows Runtime ausführen.Weitere Informationen finden Sie unter CRT-Funktionen unterstützt nicht mit /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

Parameter

  • str
    Auf NULL endende Zeichenfolge zu suchen.

  • strSearch
    Auf NULL endende Zeichenfolge, zu suchen.

  • locale
    Zu verwendende Gebietsschema.

Rückgabewert

Gibt einen Zeiger auf das erste Vorkommen von strSearch in str oder NULL zurück, wenn strSearch nicht in str angezeigt wird.Wenn strSearch zu einer Zeichenfolge der Länge 0 verweist, gibt die Funktion str zurück.

Hinweise

Die strstr-Funktion gibt einen Zeiger auf den ersten Vorkommen von strSearch in str zurück.Die Suche umfasst NULL nicht zulässig.wcsstr und _mbsstr sind Breitzeich und Mehrbytezeichen-Versionen von strstr.Die Argumente und der Rückgabewert von wcsstr sind Breitzeichen-Zeichenfolgen; die von _mbsstr sind Mehrbyte-Zeichenfolgen._mbsstr überprüft seine Parameter.Wenn str oder strSearchNULL ist, wird der ungültige Parameterhandler aufgerufen, wie in Parametervalidierung beschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, legt _mbsstrerrno zu EINVAL fest und gibt 0 zurück.strstr und wcsstr überprüfen nicht ihre Parameter.Diese drei Funktionen verhalten sich andernfalls identisch.

SicherheitshinweisSicherheitshinweis

Diese Funktionen verursachen eine potenzielle Bedrohung, die durch ein Pufferüberlaufprobleme hin bewerkstelligt wird.Pufferüberlaufprobleme sind eine häufige Methode des Systemangriffs, Ergebnis einer autorisierten Ausweitung seine Berechtigungen ausweitet.Weitere Informationen finden Sie unter Vermeiden von Pufferüberläufen.

In C nehmen diese Funktionen einen const Zeiger für das erste Argument.In C++ sind zwei Überladungen verfügbar.Die Überladung, die einen Zeiger const übernimmt, gibt einen Zeiger auf const zurück; die Version, die Nicht-const einen Zeiger übernimmt, gibt einen Zeiger auf Nicht-const zurück.Das Makro- CONST CORRECT OVERLOADS wird definiert, wenn const und Nicht-const-Versionen dieser Funktionen verfügbar sind.Wenn Sie das Nicht-const Verhalten für beide C++-Überladungen erforderlich ist, definieren Sie das Symbol _CONST_RETURN.

Der Ausgabewert wird durch die Einstellung der LC_CTYPE Kategorieneinstellung des Gebietsschemas betroffen; weitere Informationen finden Sie unter setlocale.Die Versionen dieser Funktionen ohne das _l Suffix verwenden das aktuelle Gebietsschema für dieses Verhalten abhängig; die Versionen mit dem _l Suffix sind identisch, allerdings verwenden den Gebietsschemaparameter, der in stattdessen übergeben wird.Weitere Informationen finden Sie unter Gebietsschema.

Zuordnung generische 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)

Gebietsschema

Interpretation von Mehrbytezeichen-Sequenzen

strcspn, wcscspn, _mbscspn, _mbscspn_l

strcmp, wcscmp, _mbscmp

strpbrk, wcspbrk, _mbspbrk, _mbspbrk_l

strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

strspn, wcsspn, _mbsspn, _mbsspn_l