Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Anger de första n byteen för en sträng med flerabyte tecken till ett angivet tecken. Dessa versioner av _mbsnbset, _mbsnbset_l har säkerhetsförbättringar enligt beskrivningen i Säkerhetsfunktioner i CRT-.
Viktigt!
Det här API:et kan inte användas i program som körs i Windows Runtime. Mer information finns i CRT-funktioner som inte stöds i Universella Windows Platform-appar.
Syntax
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
Parameterar
str
Sträng som ska ändras.
size
Storleken på strängbufferten.
c
Inställning för en byte eller flerabyte tecken.
count
Antal byte som ska anges.
locale
Nationella inställningar som ska användas.
Returvärde
Noll om det lyckas. annars en felkod.
Anmärkningar
Funktionerna _mbsnbset_s och _mbsnbset_s_l anger högst de första count bytena str till c. Om count är större än längden på stranvänds längden str på i stället för count. Om c är ett flerbytestecken och inte kan anges helt i den sista byte som anges av count, är den sista bytet vadderad med ett tomt tecken.
_mbsnbset_s och _mbsnbset_s_l placera inte en avslutande null i slutet av str.
_mbsnbset_s och _mbsnbset_s_l liknar _mbsnset, förutom att de anger count byte i stället för count tecken i c.
Om str är NULL eller count är noll genererar den här funktionen ett ogiltigt parameterfel, enligt beskrivningen i Parameterverifiering. Om körningen tillåts fortsätta errno anges till EINVAL och funktionen returnerar NULL.
c Om inte är ett giltigt flerbytestecken errno är det också inställt på EINVAL och ett blanksteg används i stället.
Utdatavärdet påverkas av inställningen för kategoriinställningen LC_CTYPE för nationella inställningar. Mer information finns i setlocale. Versionen _mbsnbset_s av den här funktionen använder det aktuella nationella språket för det här språkberoende beteendet. Versionen är identisk förutom att den _mbsnbset_s_l i stället använder språkparametern som skickas in. Mer information finns i Nationella inställningar.
I C++förenklas användningen av dessa funktioner av mallöverlagringar. överlagringarna kan härleda buffertlängd automatiskt och därmed eliminera behovet av att ange ett storleksargument. För mer information, se Secure template overloads.
Felsökningsbiblioteksversionerna av dessa funktioner fyller först bufferten med 0xFE. Om du vill inaktivera det här beteendet använder du _CrtSetDebugFillThreshold.
Som standard är den här funktionens globala tillstånd begränsat till programmet. Information om hur du ändrar det här beteendet finns i Globalt tillstånd i CRT.
Allmän textrutinmappning
| Tchar.h-rutin |
_UNICODE och _MBCS inte definierat |
_MBCS definierad |
_UNICODE definierad |
|---|---|---|---|
_tcsnset_s |
_strnset_s |
_mbsnbset_s |
_wcsnset_s |
_tcsnset_s_l |
_strnset_s_l |
_mbsnbset_s_l |
_wcsnset_s_l |
Kravspecifikation
| Rutin | Obligatoriskt huvud |
|---|---|
_mbsnbset_s |
<mbstring.h> |
_mbsnbset_s_l |
<mbstring.h> |
Mer kompatibilitetsinformation finns i Kompatibilitet.
Exempel
// 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 );
}
Utgång
Before: This is a test
After: **** is a test
Se även
Strängmanipulering
_mbsnbcat, _mbsnbcat_l
_strnset, _strnset_l, _wcsnset, _wcsnset_l, , , _mbsnset_mbsnset_l
_strset, _strset_l, _wcsset, _wcsset_l, , , _mbsset_mbsset_l