Sdílet prostřednictvím


_mbsnbset, _mbsnbset_l

Nastaví první n bajtů vícebajtového řetězce na zadaný znak. K dispozici jsou bezpečnější verze těchto funkcí; viz _mbsnbset_s, _mbsnbset_s_l.

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

unsigned char *_mbsnbset(
   unsigned char *str,
   unsigned int c,
   size_t count
);
unsigned char *_mbsnbset_l(
   unsigned char *str,
   unsigned int c,
   size_t count,
   _locale_t locale
);

Parametry

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

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

_mbsnbset vrátí ukazatel na změněný řetězec.

Poznámky

_mbsnbset_l A _mbsnbset 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 a _mbsnbset_l neumisťuje koncovou hodnotu null na konec str.

_mbsnbset a _mbsnbset_l je podobný _mbsnset, s tím rozdílem, že nastavuje 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 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_l je shodná s tím rozdílem, že místo toho používá parametr národního prostředí předaný. Další informace naleznete v tématu Národní prostředí.

Bezpečnostní poznámka : Toto rozhraní API způsobuje potenciální hrozbu, kterou způsobil problém s přetečením vyrovnávací paměti. Problémy s přetečením vyrovnávací paměti jsou častou metodou útoku na systém, což vede k neoprávněnému zvýšení oprávnění. Další informace najdete v tématu Zabránění přetečení vyrovnávací paměti.

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 _strnset _mbsnbset _wcsnset
_tcsnset_l _strnset_l _mbsnbset_l _wcsnset_l

Požadavky

Rutina Požadovaný hlavičkový soubor
_mbsnbset <mbstring.h>
_mbsnbset_l <mbstring.h>

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

Příklad

// crt_mbsnbset.c
// compile with: /W3
#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( string, '*', 4 ); // C4996
   // Note; _mbsnbset is deprecated; consider _mbsnbset_s
   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