Condividi tramite


_mbsnbset, _mbsnbset_l

Impostare il primo byte di n di una stringa di caratteri multibyte a un carattere specificato.Più versioni sicure di queste funzioni sono disponibili, vedere _mbsnbset_s, _mbsnbset_s_l.

Nota importanteImportante

Questa API non può essere utilizzata nelle applicazioni che vengono eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /ZW.

unsigned char *_mbsnbset(
   unsigned char *str,
   unsigned int c,
   size_t count 
);
unsigned char *_mbsnbset_l(
   unsigned char *str,
   unsigned int c,
   size_t count,
   _locale_t locale
);

Parametri

  • str
    Stringa da modificare.

  • c
    Impostazione a byte singolo o di caratteri multibyte.

  • count
    Numero di byte da impostare.

  • locale
    Impostazioni locali da utilizzare.

Valore restituito

_mbsnbset restituisce un puntatore alla stringa modificata.

Note

_mbsnbset e _mbsnbset_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 specificato da count, l'ultimo byte viene completata con un carattere vuoto._mbsnbset e _mbsnbset_lnon applica un di terminazione null alla fine di str.

_mbsnbset e _mbsnbset_lè simile a _mbsnset, con la differenza che imposta 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 LC_CTYPE delle impostazioni locali; vedere setlocale per ulteriori informazioni.La versione di _mbsnbset di questa funzione utilizza le impostazioni locali correnti per questo comportamento dipendente dalle impostazioni locali; la versione di _mbsnbset_l è identica a differenza di utilizzo del parametro delle impostazioni locali viene passato anziché.Per ulteriori informazioni, vedere Impostazioni locali.

Nota sulla sicurezza questa API comporta una potenziale minaccia determinata da un problema di sovraccarico del buffer.Problemi di sovraccarico del buffer sono un metodo frequente di attacco al sistema, con conseguente elevazione dei privilegi non autorizzata.Per ulteriori informazioni, vedere Evitare sovraccarichi del buffer.

Mapping di routine a Testo generico

Routine Tchar.h

_UNICODE e _MBCS non definiti

_MBCS definito

_UNICODE definito

_tcsnset

_strnset

_mbsnbset

_wcsnset

_tcsnset_l

_strnset_l

_mbsnbset_l

_wcsnset_l

Requisiti

Routine

Intestazione obbligatoria

_mbsnbset

<mbstring.h>

_mbsnbset_l

<mbstring.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'introduzione.

Esempio

// crt_mbsnbset.c
// compile with: /W3
#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( string, '*', 4 ); // C4996
   // Note; _mbsnbset is deprecated; consider _mbsnbset_s
   printf( "After:  %s\n", string );
}

Output

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

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

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