Sdílet prostřednictvím


_mbsnbset_s, _mbsnbset_s_l

Nastaví první n bajtů vícebajtového řetězce na zadaný znak. Tyto verze _mbsnbsetmají _mbsnbset_l vylepšení zabezpečení, jak je popsáno v funkcích zabezpečení v CRT.

Důležité

Toto rozhraní API nelze 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

errno_t _mbsnbset_s(
   unsigned char *str,
   size_t size,
   unsigned int c,
   size_t count
);
errno_t _mbsnbset_s_l(
   unsigned char *str,
   size_t size,
   unsigned int c,
   size_t count,
   _locale_t locale
);
template <size_t size>
errno_t _mbsnbset_s(
   unsigned char (&str)[size],
   unsigned int c,
   size_t count
); // C++ only
template <size_t size>
errno_t _mbsnbset_s_l(
   unsigned char (&str)[size],
   unsigned int c,
   size_t count,
   _locale_t locale
); // C++ only

Parametry

str
Řetězec, který se má změnit.

size
Velikost vyrovnávací paměti řetězce.

c
Jednobajtové nebo vícebajtové nastavení znaků

count
Počet bajtů, které se mají nastavit

locale
Národní prostředí, které se má použít.

Vrácená hodnota

Nula v případě úspěchu; v opačném případě kód chyby.

Poznámky

_mbsnbset_s_l A _mbsnbset_s funkce se nastavují maximálně první count bajty strcna hodnotu . Je-li count větší než délka str, délka str je použita místo count. Pokud c je vícebajtový znak a nedá se nastavit úplně na poslední bajt určený count, poslední bajt je vycpaný prázdným znakem. _mbsnbset_s a _mbsnbset_s_l neumisťujte koncovou hodnotu null na konec str.

_mbsnbset_s a _mbsnbset_s_l podobají _mbsnsetse , s tím rozdílem, že jsou nastaveny count bajty místo count znaků c.

Pokud str je NULL nebo count je nula, tato funkce vygeneruje neplatnou výjimku parametru, jak je popsáno v ověření parametru. Pokud je povoleno pokračovat provádění, errno je nastavena na EINVAL a funkce vrátí NULL. c Pokud není platný vícebajtový znak, errno nastaví se EINVAL a místo toho se použije mezera.

Výstupní hodnota je ovlivněna nastavením LC_CTYPE nastavení kategorie národního prostředí. Další informace najdete na webu setlocale. Verze _mbsnbset_s této funkce používá aktuální národní prostředí pro toto chování závislé na národním prostředí. Verze _mbsnbset_s_l je shodná s tím rozdílem, že místo toho používá předaný parametr národního prostředí. Další informace naleznete v tématu Národní prostředí.

V jazyce C++ je použití těchto funkcí zjednodušeno přetíženími šablon; přetížení mohou odvodit délku vyrovnávací paměti automaticky a tím eliminovat potřebu zadat argument velikosti. Další informace naleznete v tématu Přetížení šablon zabezpečení.

Verze knihovny ladění těchto funkcí nejprve vyplní vyrovnávací paměť 0xFE. Chcete-li toto chování zakázat, použijte _CrtSetDebugFillThreshold.

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

Rutina Tchar.h _UNICODE a _MBCS není definován _MBCS Definovány _UNICODE Definovány
_tcsnset_s _strnset_s _mbsnbset_s _wcsnset_s
_tcsnset_s_l _strnset_s _l _mbsnbset_s_l _wcsnset_s_l

Požadavky

Rutina Požadovaný hlavičkový soubor
_mbsnbset_s <mbstring.h>
_mbsnbset_s_l <mbstring.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Příklad

// crt_mbsnbset_s.c
#include <mbstring.h>
#include <stdio.h>

int main( void )
{
   char string[15] = "This is a test";
   /* Set not more than 4 bytes of string to be *'s */
   printf( "Before: %s\n", string );
   _mbsnbset_s( string, sizeof(string), '*', 4 );
   printf( "After:  %s\n", string );
}

Výstup

Before: This is a test
After:  **** is a test

Viz také

Manipulace s řetězci
_mbsnbcat, _mbsnbcat_l
_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l
_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l