Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sucht ein Zeichen in einer Zeichenfolge mithilfe des aktuellen Gebietsschemas oder einer angegebenen LC_CTYPE
Konvertierungsstatuskategorie.
Wichtig
_mbschr
und _mbschr_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 *strchr(
const char *str,
int c
); // C only
char *strchr(
char * str,
int c
); // C++ only
const char *strchr(
const char * str,
int c
); // C++ only
wchar_t *wcschr(
const wchar_t *str,
wchar_t c
); // C only
wchar_t *wcschr(
wchar_t *str,
wchar_t c
); // C++ only
const wchar_t *wcschr(
const wchar_t *str,
wchar_t c
); // C++ only
unsigned char *_mbschr(
const unsigned char *str,
unsigned int c
); // C only
unsigned char *_mbschr(
unsigned char *str,
unsigned int c
); // C++ only
const unsigned char *_mbschr(
const unsigned char *str,
unsigned int c
); // C++ only
unsigned char *_mbschr_l(
const unsigned char *str,
unsigned int c,
_locale_t locale
); // C only
unsigned char *_mbschr_l(
unsigned char *str,
unsigned int c,
_locale_t locale
); // C++ only
const unsigned char *_mbschr_l(
const unsigned char *str,
unsigned int c,
_locale_t locale
); // C++ only
Parameter
str
Mit NULL endende Quellzeichenfolge.
c
Zu suchende Zeichen.
locale
Zu verwendendes Gebietsschema.
Rückgabewert
Jede dieser Funktionen gibt einen Zeiger auf das erste Vorkommen von c
"in str
" zurück oder NULL
wird c
nicht gefunden.
Hinweise
Die strchr
Funktion findet das erste Vorkommen von c
"in str
" oder wird zurückgegeben NULL
, wenn c
sie nicht gefunden wird. Das abschließende Nullzeichen ist in der Suche nicht enthalten.
wcschr
, _mbschr
und _mbschr_l
sind Breitzeichen- und Multibytezeichenversionen von strchr
. Die Argumente und der Rückgabewert wcschr
sind Zeichenfolgen mit breitem Zeichen. Die Argumente und der Rückgabewert sind _mbschr
Multibyte-Zeichenfolgen. _mbschr
erkennt Multibyte-Zeichenfolgen. Wenn es sich bei der Zeichenfolge um einen Nullzeiger handelt, _mbschr
wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, gibt _mbschr
NULL
zurück und setzt errno
auf EINVAL
. strchr
und wcschr
überprüfen Sie ihre Parameter nicht. Diese drei Funktionen verhalten sich andernfalls identisch.
Der Ausgabewert wird durch die Einstellung der LC_CTYPE
Kategorieeinstellung des Gebietsschemas beeinflusst. Weitere Informationen finden Sie unter setlocale
. Die Versionen dieser Funktionen ohne das _l
-Suffix 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 ihnen übergebenen Gebietsschemaparameter. Weitere Informationen finden Sie unter Locale.
In C akzeptieren diese Funktionen einen const
-Zeiger als erstes Argument. In C++ sind zwei Überladungen verfügbar. Die Überladung, die einen Zeiger zu const
akzeptiert, gibt einen Zeiger zu const
zurück; 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
.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Mapping generischer Textroutinen
TCHAR.H -Routine |
_UNICODE und _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tcschr |
strchr |
_mbschr |
wcschr |
Anforderungen
Routine | Erforderlicher Header |
---|---|
strchr |
<string.h> |
wcschr |
<string.h> oder <wchar.h> |
_mbschr , _mbschr_l |
<mbstring.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// crt_strchr.c
//
// This program illustrates searching for a character
// with strchr (search forward) or strrchr (search backward).
//
#include <string.h>
#include <stdio.h>
int ch = 'r';
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_s( "String to be searched:\n %s\n", string );
printf_s( " %s\n %s\n\n", fmt1, fmt2 );
printf_s( "Search char: %c\n", ch );
// Search forward.
pdest = strchr( string, ch );
result = (int)(pdest - string + 1);
if ( pdest != NULL )
printf_s( "Result: first %c found at position %d\n",
ch, result );
else
printf_s( "Result: %c not found\n", ch );
// Search backward.
pdest = strrchr( string, ch );
result = (int)(pdest - string + 1);
if ( pdest != NULL )
printf_s( "Result: last %c found at position %d\n", ch, result );
else
printf_s( "Result:\t%c not found\n", ch );
}
String to be searched:
The quick brown dog jumps over the lazy fox
1 2 3 4 5
12345678901234567890123456789012345678901234567890
Search char: r
Result: first r found at position 12
Result: last r found at position 30
Siehe auch
Zeichenfolgenbearbeitung
Gebietsschema
Interpretation von Multibytezeichensequenzen
strcspn
, , wcscspn
_mbscspn
_mbscspn_l
strncat
, , _strncat_l
wcsncat
, _wcsncat_l
, , _mbsncat
_mbsncat_l
strncmp
, , wcsncmp
_mbsncmp
_mbsncmp_l
strncpy
, , _strncpy_l
wcsncpy
, _wcsncpy_l
, , _mbsncpy
_mbsncpy_l
_strnicmp
, , _wcsnicmp
_mbsnicmp
, _strnicmp_l
, , _wcsnicmp_l
_mbsnicmp_l
strpbrk
, , wcspbrk
_mbspbrk
_mbspbrk_l
strrchr
, , wcsrchr
_mbsrchr
_mbsrchr_l
strstr
, , wcsstr
_mbsstr
_mbsstr_l