_strnset
, _strnset_l
, _wcsnset
, _wcsnset_l
, _mbsnset
, , _mbsnset_l
Inicializa os caracteres de uma cadeia de caracteres para um determinado caractere. Existem versões mais seguras dessas funções; Veja _strnset_s
, _strnset_s_l
, _wcsnset_s
, _wcsnset_s_l
, _mbsnset_s
, _mbsnset_s_l
.
Importante
_mbsnset
e _mbsnset_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.
Sintaxe
char *_strnset(
char *str,
int c,
size_t count
);
char *_strnset_l(
char *str,
int c,
size_t count,
_locale_t locale
);
wchar_t *_wcsnset(
wchar_t *str,
wchar_t c,
size_t count
);
wchar_t *_wcsnset_l(
wchar_t *str,
wchar_t c,
size_t count,
_locale_t locale
);
unsigned char *_mbsnset(
unsigned char *str,
unsigned int c,
size_t count
);
unsigned char *_mbsnset_l(
unsigned char *str,
unsigned int c,
size_t count,
_locale_t locale
);
Parâmetros
str
Cadeia de caracteres a ser alterada.
c
Configuração de caractere.
count
O número de caracteres a ser definido.
locale
Localidade a usar.
Valor retornado
Retorna um ponteiro para a cadeia de caracteres alterada.
Comentários
A função _strnset
define, no máximo, os primeiros count
caracteres de str
para c
(convertido para char
). Se count
for maior que o comprimento de str
, o comprimento de str
será usado ao invés de count
.
_wcsnset
e _mbsnset
são versões de caracteres largos e de caracteres multibyte de _strnset
. Os argumentos da cadeia de caracteres e o valor de retorno de _wcsnset
são cadeias de caracteres largos. Os argumentos da cadeia de caracteres e o valor de retorno de _mbsnset
são cadeias de caracteres com vários bytes. Caso contrário, essas três funções se comportam de forma idêntica.
_mbsnset
valida seus parâmetros; if str
for um ponteiro nulo, o manipulador de parâmetro inválido será invocado, conforme descrito em Validação de parâmetro. Se a execução puder continuar, _mbsnset
retornará NULL
e definirá errno
como EINVAL
. _strnset
e _wcsnset
não validam seus parâmetros.
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.
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 rotina de texto genérico
Rotina TCHAR.H | _UNICODE e _MBCS não definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcsnset |
_strnset |
_mbsnbset |
_wcsnset |
_tcsnset_l |
_strnset_l |
_mbsnbset_l |
_wcsnset_l |
Requisitos
Rotina | Cabeçalho necessário |
---|---|
_strnset |
<string.h> |
_strnset_l |
<tchar.h> |
_wcsnset |
<string.h> ou <wchar.h> |
_wcsnset_l |
<tchar.h> |
_mbsnset , _mbsnset_l |
<mbstring.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Exemplo
// crt_strnset.c
// compile with: /W3
#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( string, '*', 4 ); // C4996
// Note: _strnset is deprecated; consider using _strnset_s
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