Sdílet prostřednictvím


_mbsnbset, _mbsnbset_l

Nastavuje první bajty n vícebajtového znakového řetězce na zadaný znak.Bezpečnější verze těchto funkcí jsou k dispozici; viz _mbsnbset_s, _mbsnbset_s_l.

Důležitá poznámkaDůležité

Toto API nelze použít v aplikacích, které jsou spuštěny v modulu Windows Runtime.Další informace naleznete v tématu CRT funkce nejsou podporovány s /ZW.

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ý má být změněn.

  • c
    Nastavení jednobajtových nebo vícebajtových znaků.

  • count
    Počet bajtů, které mají být nastaveny.

  • locale
    Použité národní prostředí.

Vrácená hodnota

_mbsnbset vrací ukazatel na upravený řetězec.

Poznámky

Funkce _mbsnbset a _mbsnbset_l nastaví maximálně prvních count bajtů proměnné str k c.Pokud je count větší než délka str, délka str se použije namísto count.Pokud je c vícebajtový znak a nelze jej nastavit zcela do posledního bajtu určeného pomocí count, poslední bajt je ohraničen prázdným znakem._mbsnbset a _mbsnbset_lneumístí ukončovací hodnotu null na konec str.

_mbsnbset a _mbsnbset_lse podobá _mbsnset, s tím rozdílem, že nastaví count bajtů namísto count znaků c.

Pokud str je NULL, nebo count je nula, tato funkce generuje výjimku neplatného parametru, jak je popsáno v Ověření parametru.Pokud smí provádění pokračovat, errno se nastaví na EINVAL a funkce vrátí NULL.Také pokud c není platný vícebajtový znak, errno je nastavena na EINVAL a místo toho je použita mezera.

Výstupní hodnota je ovlivněna nastavením kategorie LC_CTYPE národního prostředí; viz setlocale pro další informace.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 stejná s tím rozdílem, že používá předaný parametr národního prostředí.Další informace naleznete v tématu Národní prostředí.

Bezpečnostní poznámka   Toto rozhraní API způsobuje potenciální ohrožení způsobené problémem přetečení vyrovnávací paměti.Problémy s přetečením vyrovnávací paměti jsou častou metodou útoku na systém. Výsledkem je negarantované zvýšení úrovně oprávnění.Další informace naleznete v tématu Předcházení přetečení vyrovnávací paměti.

Rutinní mapování obecného textu

Rutina Tchar.h

_UNICODE a _MBCS nejsou definovány

_MBCS definováno

_UNICODE definováno

_tcsnset

_strnset

_mbsnbset

_wcsnset

_tcsnset_l

_strnset_l

_mbsnbset_l

_wcsnset_l

Požadavky

Rutina

Požadované záhlaví

_mbsnbset

<mbstring.h>

_mbsnbset_l

<mbstring.h>

Další informace o kompatibilitě naleznete 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ýsledek

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

Ekvivalent v rozhraní .NET Framework

Nelze použít. Pokud chcete volat standardní funkci jazyka C, použijte PInvoke. Další informace naleznete v tématu Příklady vyvolání platformy.

Viz také

Referenční dokumentace

Zacházení s řetězci (CRT)

_mbsnbcat, _mbsnbcat_l

_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l