_mbsnbset_s, _mbsnbset_s_l
Imposta il primo byte di n di una stringa di caratteri multibyte a un carattere specificato.Queste versioni di _mbsnbset, _mbsnbset_l presentano miglioramenti della sicurezza, come descritto in Funzionalità di sicurezza in CRT.
![]() |
---|
Questa API non può essere utilizzato nelle applicazioni eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /ZW. |
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
Parametri
str
Stringa da modificare.size
La dimensione del buffer di stringa.c
Impostazione a byte singolo o di caratteri multibyte.count
Numero di byte da impostare.locale
Impostazioni locali da utilizzare.
Valore restituito
Zero se ha esito positivo; in caso contrario, un codice di errore.
Note
_mbsnbset_s e _mbsnbset_s_l esecuzione, insieme al massimo, il primo byte di count di str a c.Se count è maggiore della lunghezza di str, la lunghezza di str viene utilizzata al posto di count.Se c è un carattere multibyte e non può essere impostato interamente nell'ultimo byte che è specificato da count, l'ultimo byte viene completata con un carattere vuoto._mbsnbset_s e _mbsnbset_s_l non posizionano di terminazione null alla fine di str.
_mbsnbset_s e _mbsnbset_s_l assomigliano a _mbsnset, con la differenza che impostano i byte di count anziché i caratteri di count di c.
Se str è NULL o count è zero, questa funzione genera un'eccezione non valida di parametro, come descritto in Convalida dei parametri.Se l'esecuzione può continuare, errno viene impostato su EINVAL e la funzione restituisce NULL.Inoltre, se c non è un carattere multibyte valido, errno è impostato su EINVAL e uno spazio viene invece utilizzato.
Il valore di output è interessato dall'impostazione dell'impostazione di categoria di LC_CTYPE delle impostazioni locali; vedere setlocale, _wsetlocale per ulteriori informazioni.La versione di _mbsnbset_s di questa funzione utilizza le impostazioni locali correnti per questo comportamento dipendente dalle impostazioni locali; la versione di _mbsnbset_s_l sono identiche ma anziché utilizza il parametro delle impostazioni locali passato.Per ulteriori informazioni, vedere Impostazioni locali.
In C++, l'utilizzo di queste funzioni è semplificato dagli overload del modello; gli overload possono dedurre la lunghezza del buffer automaticamente e quindi eliminare la necessità di specificare un argomento di dimensione.Per ulteriori informazioni, vedere Assicurarsi che gli overload del modello.
La versione di debug di queste funzioni per prima cosa riempiono il buffer con il valore 0xFD.Per disabilitare questo comportamento, utilizzare _CrtSetDebugFillThreshold.
Mapping di routine a Testo generico
Routine Tchar.h |
_UNICODE e _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tcsnset_s |
_strnset_s |
_mbsnbset_s |
_wcsnset_s |
_tcsnset_s_l |
_strnset_s _l |
_mbsnbset_s_l |
_wcsnset_s_l |
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
_mbsnbset_s |
<mbstring.h> |
_mbsnbset_s_l |
<mbstring.h> |
Per ulteriori informazioni di compatibilità, vedere Compatibilità.
Esempio
// 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 );
}
Output
Equivalente .NET Framework
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di platform invoke.
Vedere anche
Riferimenti
_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l