Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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 _strnsetseguranç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_se _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