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.
Define os primeiros n bytes de uma cadeia de caracteres de vários bytes como um caractere especificado. Essas versões do _mbsnbset
, _mbsnbset_l
têm aprimoramentos de segurança, conforme descrito em Recursos de segurança no CRT.
Importante
Essa API não pode ser usada em aplicativos executados no Tempo de Execução do Windows. Para obter mais informações, consulte funções CRT não suportadas em aplicativos da Plataforma Universal do Windows.
Sintaxe
errno_t _mbsnbset_s(
unsigned char *str,
size_t size,
unsigned int c,
size_t count
);
errno_t _mbsnbset_s_l(
unsigned char *str,
size_t size,
unsigned int c,
size_t count,
_locale_t locale
);
template <size_t size>
errno_t _mbsnbset_s(
unsigned char (&str)[size],
unsigned int c,
size_t count
); // C++ only
template <size_t size>
errno_t _mbsnbset_s_l(
unsigned char (&str)[size],
unsigned int c,
size_t count,
_locale_t locale
); // C++ only
Parâmetros
str
String a ser alterada.
size
O tamanho do buffer de cadeia de caracteres.
c
Configuração de caractere de byte único ou multibyte.
count
Número de bytes a definir.
locale
Localidade a ser usada.
Valor de retorno
Zero se for bem-sucedido; caso contrário, um código de erro.
Observações
As _mbsnbset_s
funções e _mbsnbset_s_l
definem, no máximo, os primeiros count
bytes de str
para c
. Se count
for maior que o comprimento de str
, o comprimento de str
é usado em vez de count
. Se c
for um caractere multibyte e não puder ser definido inteiramente no último byte especificado pelo count
, o último byte será preenchido com um caractere em branco.
_mbsnbset_s
e _mbsnbset_s_l
não coloque um nulo de terminação no final de str
.
_mbsnbset_s
e _mbsnbset_s_l
se assemelham _mbsnset
, exceto que eles definem count
bytes em vez count
de caracteres de c
.
Se str
for NULL
ou count
for zero, essa função gerará uma exceção de parâmetro inválida, conforme descrito em Validação de parâmetro. Se a execução for permitida para continuar, errno
é definido como EINVAL
e a função retorna NULL
. Além disso, se c
não for um caractere multibyte válido, errno
será definido como EINVAL
e um espaço será usado.
O valor de saída é afetado pela configuração da LC_CTYPE
categoria da localidade. Para obter mais informações, consulte setlocale
. A _mbsnbset_s
versão dessa função usa a localidade atual para esse comportamento dependente da localidade, a _mbsnbset_s_l
versão é idêntica, exceto que, em vez disso, usa o parâmetro locale que é passado. Para obter mais informações, consulte Locale.
Em C++, o uso dessas funções é simplificado por sobrecargas de modelo; As sobrecargas podem inferir o comprimento do buffer automaticamente e, assim, eliminar a necessidade de especificar um argumento de tamanho. Para obter mais informações, consulte Sobrecargas de modelo seguro.
As versões da biblioteca de depuração dessas funções primeiro preenchem o buffer com 0xFE. Para desativar esse comportamento, use _CrtSetDebugFillThreshold
.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.
Mapeamentos de rotina de texto genérico
Rotina 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 |
Requerimentos
Rotina | Cabeçalho obrigatório |
---|---|
_mbsnbset_s |
<mbstring.h> |
_mbsnbset_s_l |
<mbstring.h> |
Para obter mais informações sobre compatibilidade, consulte Compatibilidade.
Exemplo
// crt_mbsnbset_s.c
#include <mbstring.h>
#include <stdio.h>
int main( void )
{
char string[15] = "This is a test";
/* Set not more than 4 bytes of string to be *'s */
printf( "Before: %s\n", string );
_mbsnbset_s( string, sizeof(string), '*', 4 );
printf( "After: %s\n", string );
}
Resultado
Before: This is a test
After: **** is a test
Ver também
Manipulação de cadeias de caracteres
_mbsnbcat
, _mbsnbcat_l
_strnset
, _strnset_l
, _wcsnset
, _wcsnset_l
, _mbsnset
, _mbsnset_l
_strset
, _strset_l
, _wcsset
, _wcsset_l
, _mbsset
, _mbsset_l