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