_strnset_s, _strnset_s_l, _wcsnset_s, _wcsnset_s_l, _mbsnset_s, _mbsnset_s_l
Inicialize caracteres de uma seqüência de caracteres para um determinado caractere.Essas são sistema autônomo versões de _strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l com aprimoramentos de segurança conforme descrito em Aprimoramentos de segurança no CRT.
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
);
Parâmetros
str
Seqüência de caracteres a ser alterado.numberOfElements
O dimensionar do str buffer.c
Configuração de caractere.count
Número de caracteres a ser conjunto.locale
Localidade usar.
Valor de retorno
Zero se for bem-sucedido, caso contrário, um código de erro.
Essas funções validam seus argumentos.If str é um ponteiro nulo ou o dimensionar do argumento é menor ou igual a 0, e, em seguida, o manipulador de parâmetro inválido é invocado, sistema autônomo descrito em Validação de parâmetro. Se a execução for permitida para continuar, essas funções retornam EINVAL e conjunto errno para EINVAL.
Comentários
Essas funções conjunto, no máximo, a primeira count caracteres do str para c. If count é maior do que o dimensionar do str (ou seja, numberOfElements), o dimensionar é usado em vez de count.
_wcsnset_s e _mbsnset_s são versões de caractere largo e caracteres de multibyte de _strnset_s. O argumento de seqüência de caracteres da _wcsnset_s é um caractere de toda a seqüência de caracteres; da _mbsnset_s é umseqüência de caracteres de multibyte. Especifique estas três funções identicamente outro comportam.
O valor de saída é afetado pela configuração do LC_CTYPE categoria de configuração da localidade; consulte setlocale para obter mais informações.As versões dessas funções sem o _l sufixo use a localidade corrente para esse comportamento dependente de localidade; as versões com o _l sufixo são idênticas exceto que usarem o parâmetro de localidade passado em vez disso. For more information, see Localidade.
As versões de depurar dessas funções primeiro preenchem o buffer com 0xFD.Para desabilitar esse comportamento, use _CrtSetDebugFillThreshold.
Mapeamentos de rotina de texto genérica
Rotina TCHAR.H |
_UNICODE & _MBCS não definido |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcsnset_s |
_strnset_s |
_mbsnbset_s |
_wcsnset_s |
_tcsnset_s_l |
_strnset_s_l |
_mbsnbset_s_l |
_wcsnset_s_l |
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_strnset_s |
<string.h> |
_strnset_s_l |
<tchar.h> |
_wcsnset_s |
<string.h> ou <wchar.h> |
_wcsnset_s_l |
<tchar.h> |
_mbsnset_s, _mbsnset_s_l |
<mbstring.h> |
Para obter informações adicionais compatibilidade, consulte Compatibilidade na introdução.
Exemplo
// 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 );
}
Before: This is a test After: **** is a test
Equivalente do NET Framework
Consulte também
Referência
Manipulação de seqüência de caracteres (CRT)