Condividi tramite


_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.

Nota importanteImportante

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

Modifica delle stringhe (CRT)

_mbsnbcat, _mbsnbcat_l

_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l