Condividi tramite


_mbsnbset, _mbsnbset_l

Imposta i primi n byte di una stringa di caratteri multibyte a un carattere specificato. Sono disponibili versioni più sicure di queste funzioni; vedere _mbsnbset_s, _mbsnbset_s_l.

Importante

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 a caratteri multibyte.

  • count
    Numero di byte da impostare.

  • locale
    Impostazioni locali da utilizzare.

Valore restituito

_mbsnbset restituisce un puntatore alla stringa modificata.

Note

Le funzioni _mbsnbset e _mbsnbset_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 e _mbsnbset_lnon applica un null di terminazione alla fine di str.

_mbsnbset e _mbsnbset_lè simile a _mbsnset, con la differenza che imposta i count byte anziché i count caratteri 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 di categoria LC_CTYPE delle impostazioni locali; vedere setlocale per ulteriori informazioni. La versione _mbsnbset di questa funzione utilizza le impostazioni locali correnti per questo comportamento dipendente dalle impostazioni locali; la versione _mbsnbset_l è identica ad eccezione che utilizza il parametro delle impostazioni locali che gli sono state passate. 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 su 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à.

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

_mbsnbcat, _mbsnbcat_l

_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l