_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
_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l