Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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é
_mbschra _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.
wcschra _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 constna 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