Condividi tramite


_mbsnbset, _mbsnbset_l

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

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

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 di caratteri a un byte singolo o multibyte.

count
Numero di byte da impostare.

locale
Impostazioni locali da usare.

Valore restituito

_mbsnbset restituisce un puntatore alla stringa modificata.

Osservazioni:

Le funzioni _mbsnbset e _mbsnbset_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 e _mbsnbset_l non inserisce un valore Null terminante alla fine di str.

_mbsnbset e _mbsnbset_l è simile a _mbsnset, ad eccezione del fatto che imposta count byte anziché 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 di questa funzione usa le impostazioni locali correnti per questo comportamento dipendente dalle impostazioni locali. La _mbsnbset _mbsnbset_l versione è identica, ad eccezione del fatto che usa il parametro delle impostazioni locali passato. Per altre informazioni, vedere Locale.

Nota sulla sicurezza Questa API è esposta a una potenziale minaccia dovuta a un problema di sovraccarico del buffer. I problemi di sovraccarico del buffer sono usati spesso come metodo di attacco di sistema e provocano un'elevazione dei privilegi non autorizzata. Per altre informazioni, vedere Evitare sovraccarichi del buffer.

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 _strnset _mbsnbset _wcsnset
_tcsnset_l _strnset_l _mbsnbset_l _wcsnset_l

Requisiti

Ciclo Intestazione obbligatoria
_mbsnbset <mbstring.h>
_mbsnbset_l <mbstring.h>

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

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