_mbsnbset_s, _mbsnbset_s_l

Imposta i primi n byte di una stringa di caratteri multibyte su un carattere specificato. Queste versioni di hanno _mbsnbset_lmiglioramenti per_mbsnbset la sicurezza, come descritto in Funzionalità di sicurezza in CRT.

Importante

Non è possibile usare questa API nelle applicazioni eseguite in Windows Runtime. Per altre informazioni, vedere Funzioni CRT non supportate nelle app della piattaforma UWP (Universal Windows Platform).

Sintassi

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
Dimensione del buffer di stringa.

c
Impostazione di caratteri a un byte singolo o multibyte.

count
Numero di byte da impostare.

locale
Impostazioni locali da usare.

Valore restituito

Zero in caso di esito positivo; in caso contrario un codice di errore.

Osservazioni:

Le funzioni _mbsnbset_s e _mbsnbset_s_l impostano al massimo i primi count byte di str su c. Se count è maggiore della lunghezza di str, la lunghezza di str viene usata invece di count. Se c è un carattere multibyte e non può essere impostato interamente nell'ultimo byte specificato da count, l'ultimo byte viene riempito con un carattere vuoto. _mbsnbset_s e _mbsnbset_s_l non posizionare un valore Null terminante alla fine di str.

_mbsnbset_s e _mbsnbset_s_l sono simili a _mbsnset, ma impostano count byte invece di count caratteri di c.

Se str è o count è NULL zero, questa funzione genera un'eccezione di parametro non valida, 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 viene impostato su EINVAL e viene usato uno spazio.

Il valore di output è interessato dall'impostazione dell'impostazione LC_CTYPE della categoria delle impostazioni locali. Per ulteriori informazioni, vedere setlocale. La versione _mbsnbset_s di questa funzione usa le impostazioni locali correnti per questo comportamento dipendente dalle impostazioni locali; la versione _mbsnbset_s_l è identica tranne per il fatto che usa in alternativa il parametro delle impostazioni locali che gli viene passato. Per altre informazioni, vedere Locale.

In C++ l'utilizzo di queste funzioni viene semplificato dagli overload di modello; gli overload possono dedurre la lunghezza del buffer automaticamente eliminando la necessità di specificare un argomento per la dimensione. Per altre informazioni, vedere Proteggere gli overload dei modelli.

Le versioni della libreria di debug di queste funzioni riempiono prima di tutto il buffer con 0xFE. Per disabilitare questo comportamento, usare _CrtSetDebugFillThreshold.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Mapping di routine di testo generico

Routine Tchar.h _UNICODE e _MBCS non definito _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

Ciclo Intestazione obbligatoria
_mbsnbset_s <mbstring.h>
_mbsnbset_s_l <mbstring.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (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

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

Vedi anche

Manipolazione delle stringhe
_mbsnbcat, _mbsnbcat_l
_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset_mbsnset_l
_strset, _strset_l, _wcsset, _wcsset_l, _mbsset_mbsset_l