_strnset_s
, _strnset_s_l
, _wcsnset_s
, _wcsnset_s_l
, _mbsnset_s
, _mbsnset_s_l
_tcsnset_s
_tcsncset_s
,_tcsncset_s_l
Inicializa os caracteres de uma cadeia de caracteres para um determinado caractere. Essas versões do , _strnset_l
, , _wcsnset_l
_wcsnset
, _mbsnset
, _mbsnset_l
têm aprimoramentos de _strnset
segurança, conforme descrito em Recursos de segurança no CRT.
Importante
_mbsnset_s
e _mbsnset_s_l
não podem ser usados em aplicativos executados no Windows Runtime. Para obter mais informações, confira Funções do CRT sem suporte em aplicativos da Plataforma Universal do Windows.
Para _tcsnset_s
, _tcsnset_s_l
, _tcsncset_s
e _tcsncset_s_l
consulte Mapeamentos de função de texto genérico.
Sintaxe
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
Cadeia de caracteres a ser alterada.
numberOfElements
O tamanho do buffer str
.
c
Configuração de caractere.
count
O número de caracteres a ser definido.
locale
Localidade a usar.
Valor retornado
Zero se for bem-sucedido; caso contrário, um código de erro.
Essas funções validam seus argumentos. Se str
não for uma cadeia de caracteres válida terminada em nulo ou o argumento de tamanho for menor ou igual a 0, o manipulador de parâmetro inválido será invocado, conforme descrito em Validação de parâmetro. Se a execução tiver permissão para continuar, essas funções retornarão um código de erro e errno
será definido para esse código de erro. O código de erro padrão é EINVAL
se um valor mais específico não se aplicar.
Comentários
Essas funções definem, no máximo, os primeiros count
caracteres de str
para c
. Se count
é maior que o tamanho do str
, o tamanho de str
é usado em vez de count
. Ocorrerá um erro se count
for maior do que numberOfElements
e esses dois parâmetros são maiores que o tamanho de str
.
_wcsnset_s
e _mbsnset_s
são versões de caracteres largos e de caracteres multibyte de _strnset_s
. O argumento de string of _wcsnset_s
é uma string de caracteres largos; o de _mbsnset_s
é uma string de caracteres multibyte. Caso contrário, essas três funções se comportam de forma idêntica.
O valor de saída é afetado pela configuração da categoria LC_CTYPE
da localidade. Para obter mais informações, consulte setlocale
. As versões dessas funções sem o sufixo _l
usam a localidade atual desse comportamento dependente da localidade. As versões com o sufixo _l
são idênticas, exceto por usarem o parâmetro de localidade passado em seu lugar. Para obter mais informações, consulte Localidade.
As versões da biblioteca de depuração dessas funções primeiro preenchem o buffer com 0xFE
. Para desabilitar esse comportamento, use _CrtSetDebugFillThreshold
.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.
Mapeamentos de funções de texto genérico
A função na coluna é mapeada tchar.h
para a função nas outras colunas, dependendo do conjunto de caracteres definido em tempo de compilação.
Função tchar.h |
_UNICODE e _MBCS não definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcsnset_s |
_strnset_s |
_mbsnbset_s |
_wcsnset_s |
_tcsnset_s_l |
_strnset_s_l |
_mbsnbset_s_l |
_wcsnset_s_l |
_tcsncset_s |
_strnset_s |
_mbsnset_s |
_wcsnset_s |
_tcsncset_s_l |
_strnset_s_l |
_mbsnset_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 sobre compatibilidade, consulte Compatibilidade.
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
Confira também
Manipulação de cadeia de caracteres
Localidade
Interpretação de sequências de caracteres multibyte
strcat
, wcscat
, _mbscat
strcmp
, wcscmp
, _mbscmp
strcpy
, wcscpy
, _mbscpy
_strset
, _strset_l
, _wcsset
, _wcsset_l
, _mbsset
, , _mbsset_l