_strnset_s, _strnset_s_l, _wcsnset_s, _wcsnset_s_l, _mbsnset_s, _mbsnset_s_l
Inizializza i caratteri di una stringa con un carattere specifico. Queste versioni di _strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l contengono i miglioramenti della sicurezza come descritto in Funzionalità di sicurezza in CRT.
Importante
_mbsnset_s e _mbsnset_s_l non possono essere utilizzate nelle applicazioni che vengono eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /ZW.
errno_t _strnset_s(
char *str,
size_t numberOfElements,
int c,
size_t count
);
errno_t _strnset_s_l(
char *str,
size_t numberOfElements,
int c,
size_t count,
locale_t locale
);
errno_t _wcsnset_s(
wchar_t *str,
size_t numberOfElements,
wchar_t c,
size_t count
);
errno_t _wcsnset_s_l(
wchar_t *str,
size_t numberOfElements,
wchar_t c,
size_t count,
_locale_t locale
);
errno_t _mbsnset_s(
unsigned char *str,
size_t numberOfElements,
unsigned int c,
size_t count
);
errno_t _mbsnset_s_l(
unsigned char *str,
size_t numberOfElements,
unsigned int c,
size_t count,
_locale_t locale
);
Parametri
str
Stringa da modificare.numberOfElements
La dimensione del buffer str.c
Impostazione del carattere.count
Numero di caratteri da impostare.locale
Impostazioni locali da utilizzare.
Valore restituito
Zero in caso di esito positivo; in caso contrario, un codice di errore.
Queste funzioni convalidano gli argomenti. Se str non è una stringa con terminazione null valida oppure la dimensione dell'argomento è minore o uguale a 0, il gestore di parametro non valido viene richiamato, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, queste funzioni restituiscono un codice di errore e un set errno al codice di errore. Il codice di errore predefinito è EINVAL se un valore più specifico non viene applicato.
Note
Queste funzioni impostano, al massimo, i primi caratteri count di str a c. Se count è superiore alla dimensione di str, la dimensione di str viene utilizzata invece di count. Si verifica un errore se count è maggiore numberOfElements ed entrambi i parametri sono maggiori delle dimensioni di str.
_wcsnset_s e _mbsnset_s sono versioni a caratteri di tipo "wide" e di caratteri multibyte di _strnset_s. L'argomento di tipo stringa _wcsnset_s è una stringa di caratteri di tipo "wide"; tale _mbsnset_s è una stringa con caratteri multibyte. Altrimenti queste tre funzioni si comportano in modo identico.
Il valore di output è interessato dall'impostazione di categoria LC_CTYPE delle impostazioni locali; vedere setlocale per ulteriori informazioni. Le versioni di queste funzioni senza il suffisso _l utilizzano le impostazioni locali correnti per il comportamento dipendente dalle impostazioni locali; le versioni con il suffisso _l sono identiche, ad eccezione del fatto che utilizzano il parametro delle impostazioni locali che viene passato. Per ulteriori informazioni, vedere Impostazioni locali.
La versione di debug di queste funzioni per prima cosa riempiono il buffer con il valore 0xFD. Per disattivare questo comportamento, utilizzare _CrtSetDebugFillThreshold.
Mapping di routine su testo generico
Routine TCHAR.H |
_UNICODE & _MBCS non definiti |
_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
Routine |
Intestazione obbligatoria |
---|---|
_strnset_s |
<string.h> |
_strnset_s_l |
<tchar.h> |
_wcsnset_s |
<string.h> o <wchar.h> |
_wcsnset_s_l |
<tchar.h> |
_mbsnset_s, _mbsnset_s_l |
<mbstring.h> |
Per ulteriori informazioni sulla compatibilità, vedere Compatibilità.
Esempio
// crt_strnset_s.c
#include <string.h>
#include <stdio.h>
int main( void )
{
char string[15] = "This is a test";
/* Set not more than 4 characters of string to be *'s */
printf( "Before: %s\n", string );
_strnset_s( string, sizeof(string), '*', 4 );
printf( "After: %s\n", string );
}