Condividi tramite


_mbsnbset_s, _mbsnbset_s_l

Imposta i primi n byte di una stringa di caratteri multibyte a un carattere specificato. Queste versioni di _mbsnbset, _mbsnbset_l contengono i miglioramenti della sicurezza come descritto in Funzionalità di sicurezza in CRT.

Importante

Questa API non può essere utilizzata 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 della stringa.

  • c
    Impostazione a byte singolo o a caratteri multibyte.

  • count
    Numero di byte da impostare.

  • locale
    Impostazioni locali da utilizzare.

Valore restituito

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

Note

Le funzioni _mbsnbset_s e _mbsnbset_s_l impostano, al massimo, i primi count byte 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 specificato da count, l'ultimo byte viene riempito con un carattere vuoto. _mbsnbset_s e _mbsnbset_s_l non pongono un carattere 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 di parametro non valido 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 ed, invece, viene utilizzato uno spazio.

Il valore di output è interessato dall'impostazione dell'impostazione della categoria LC_CTYPE delle impostazioni locali. Vedere setlocale, _wsetlocale per ulteriori informazioni. La versione _mbsnbset_s di questa funzione utilizza le impostazioni locali correnti per questo comportamento dipendente dalle impostazioni locali; la versione _mbsnbset_s_l è identica ad eccezione che essa utilizza il parametro delle impostazioni locali che gli viene passato. Per ulteriori informazioni, vedere Impostazioni locali.

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

La versione di debug di queste funzioni per prima cosa riempiono il buffer con il valore 0xFD. Per disattivare questo comportamento, utilizzare _CrtSetDebugFillThreshold.

Mapping di routine di 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 sulla 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 di stringhe (CRT)

_mbsnbcat, _mbsnbcat_l

_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l