strchr
, wcschr
, , _mbschr
_mbschr_l
Vyhledá znak v řetězci pomocí aktuálního národního prostředí nebo zadané LC_CTYPE
kategorie stavu převodu.
Důležité
_mbschr
a _mbschr_l
nelze je použít v aplikacích, které se spouští v prostředí Windows Runtime. Další informace najdete v tématu Funkce CRT, které nejsou v aplikacích Univerzální platforma Windows podporované.
Syntaxe
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
Parametry
str
Zdrojový řetězec ukončený hodnotou null.
c
Znak, který se má nacházet.
locale
Národní prostředí, které se má použít.
Vrácená hodnota
Každá z těchto funkcí vrátí ukazatel na první výskyt c
in str
, nebo NULL
pokud c
není nalezen.
Poznámky
Funkce strchr
najde první výskyt c
in str
, nebo vrátí NULL
, pokud c
není nalezen. Do hledání je zahrnut znak ukončení hodnoty null.
wcschr
a _mbschr
_mbschr_l
jsou širokoznakové a vícebajtové verze .strchr
Argumenty a návratová hodnota jsou řetězce širokého znaku wcschr
. Argumenty a návratová _mbschr
hodnota jsou řetězce s vícebajtovými znaky. _mbschr
rozpozná vícebajtové sekvence znaků. Pokud je řetězec nulovým ukazatelem, _mbschr
vyvolá také neplatnou obslužnou rutinu parametru, jak je popsáno v ověření parametru. Pokud je povoleno pokračovat provádění, _mbschr
vrátí NULL
a nastaví errno
hodnotu EINVAL
. strchr
a wcschr
neověřujte jejich parametry. Tyto tři funkce se chovají stejně jinak.
Výstupní hodnota je ovlivněna nastavením LC_CTYPE
nastavení kategorie národního prostředí; další informace naleznete v tématu setlocale
. Verze těchto funkcí bez _l
přípony používají aktuální národní prostředí pro toto chování závislé na národním prostředí. Verze s _l
příponou jsou shodné s tím rozdílem, že místo toho používají předaný parametr národního prostředí. Další informace naleznete v tématu Národní prostředí.
V jazyce C tyto funkce přebírají const
ukazatel pro první argument. V jazyce C++ jsou k dispozici dvě přetížení. Přetížení přetěžování, které vrací ukazatel const
na const
; verze, která přebírá ukazatel na ne-const
vrátí ukazatel na non-const
. _CRT_CONST_CORRECT_OVERLOADS
Makro je definováno, pokud jsou k dispozici obě const
i jinéconst
verze těchto funkcí. Pokud pro obě přetížení jazyka C++ požadujete jinéconst
chování, definujte symbol _CONST_RETURN
.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
Mapování rutin obecného textu
TCHAR.H rutina |
_UNICODE a _MBCS není definován |
_MBCS definovaný |
_UNICODE definovaný |
---|---|---|---|
_tcschr |
strchr |
_mbschr |
wcschr |
Požadavky
Rutina | Požadovaný hlavičkový soubor |
---|---|
strchr |
<string.h> |
wcschr |
<string.h> nebo <wchar.h> |
_mbschr , _mbschr_l |
<mbstring.h> |
Další informace o kompatibilitě naleznete v tématu Kompatibilita.
Příklad
// 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
Viz také
Manipulace s řetězci
Národní prostředí
Interpretace vícebajtových sekvencí znaků
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