_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