_mbsnbset_s
, _mbsnbset_s_l
Imposta i primi n byte di una stringa di caratteri multibyte su un carattere specificato. Queste versioni di hanno _mbsnbset_l
miglioramenti per_mbsnbset
la sicurezza, come descritto in Funzionalità di sicurezza in CRT.
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
errno_t _mbsnbset_s(
unsigned char *str,
size_t size,
unsigned int c,
size_t count
);
errno_t _mbsnbset_s_l(
unsigned char *str,
size_t size,
unsigned int c,
size_t count,
_locale_t locale
);
template <size_t size>
errno_t _mbsnbset_s(
unsigned char (&str)[size],
unsigned int c,
size_t count
); // C++ only
template <size_t size>
errno_t _mbsnbset_s_l(
unsigned char (&str)[size],
unsigned int c,
size_t count,
_locale_t locale
); // C++ only
Parametri
str
Stringa da modificare.
size
Dimensione del buffer di stringa.
c
Impostazione di caratteri a un byte singolo o multibyte.
count
Numero di byte da impostare.
locale
Impostazioni locali da usare.
Valore restituito
Zero in caso di esito positivo; in caso contrario un codice di errore.
Osservazioni:
Le funzioni _mbsnbset_s
e _mbsnbset_s_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_s
e _mbsnbset_s_l
non posizionare un valore Null terminante alla fine di str
.
_mbsnbset_s
e _mbsnbset_s_l
sono simili a _mbsnset
, ma impostano count
byte invece di 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 _mbsnbset_s
di questa funzione usa le impostazioni locali correnti per questo comportamento dipendente dalle impostazioni locali; la versione _mbsnbset_s_l
è identica tranne per il fatto che usa in alternativa il parametro delle impostazioni locali che gli viene passato. Per altre informazioni, vedere Locale.
In C++ l'utilizzo di queste funzioni viene semplificato dagli overload di modello; gli overload possono dedurre la lunghezza del buffer automaticamente eliminando la necessità di specificare un argomento per la dimensione. Per altre informazioni, vedere Proteggere gli overload dei modelli.
Le versioni della libreria di debug di queste funzioni riempiono prima di tutto il buffer con 0xFE. Per disabilitare questo comportamento, usare _CrtSetDebugFillThreshold
.
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_s |
_strnset_s |
_mbsnbset_s |
_wcsnset_s |
_tcsnset_s_l |
_strnset_s _l |
_mbsnbset_s_l |
_wcsnset_s_l |
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
_mbsnbset_s |
<mbstring.h> |
_mbsnbset_s_l |
<mbstring.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
// crt_mbsnbset_s.c
#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_s( string, sizeof(string), '*', 4 );
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