_mbsnbset_s, _mbsnbset_s_l
Defina os primeiros bytes de n de uma cadeia de caracteres de multibyte- caracteres em um caractere especificado.Essas versões de _mbsnbset, _mbsnbset_l têm aprimoramentos de segurança, como descrito em Recursos de segurança no CRT.
Importante |
---|
Este API não pode ser usado em aplicativos executados em Tempo de Execução do Windows.Para obter mais informações, consulte Funções de CRT não suportadas com /ZW. |
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
Cadeia de caracteres a ser modificada.size
O tamanho do buffer de cadeia de caracteres.c
Configuração de byte único ou de multibyte- caractere.count
Número de bytes a ser definidas.locale
A localidade usar.
Valor de retorno
Zero se com êxito; caso contrário, um código de erro.
Comentários
_mbsnbset_s e _mbsnbset_s_l funcionam conjunto, no máximo, os primeiros bytes de count de str a c.Se count é maior do que o comprimento de str, o comprimento de str é usado em vez de count.Se c é um caractere de multibyte e não pode ser definida apenas no último byte que é especificado por count, o byte o último é preenchido com um caractere em branco._mbsnbset_s e _mbsnbset_s_l não colocam um zero finalizando no final de str.
_mbsnbset_s e _mbsnbset_s_l são semelhantes a _mbsnset, exceto que define count de bytes em vez de caracteres de count de c.
Se str é NULL ou count é zero, essa função gera uma exceção de parâmetro inválido, como descrito em Validação de parâmetro.Se a execução é permitida continuar, errno é definido como EINVAL e a função retorna NULL.Além disso, se c não é um caractere válido de multibyte, errno é definido como EINVAL e um espaço é usado em vez disso.
O valor de saída é afetado pela configuração da categoria de LC_CTYPE de localidade; consulte setlocale, wsetlocale para mais informações.A versão de _mbsnbset_s dessa função usa a localidade atual para este comportamento de são dependentes; a versão de _mbsnbset_s_l é idêntica exceto que em vez disso use o parâmetro de localidade que é passado.Para obter mais informações, consulte Localidade.
Em C++, o uso dessas funções é simplificado por sobrecargas de modelo; as sobrecargas podem interpretar o tamanho do buffer automaticamente e assim eliminar a necessidade de especificar um argumento de tamanho.Para obter mais informações, consulte Proteger Overloads de modelo.
As versões de depuração dessas funções preenchem primeiro o buffer com 0xFD.Para desativar esse comportamento, use _CrtSetDebugFillThreshold.
Mapeamentos da rotina de Genérico- texto
Rotina de Tchar.h |
_UNICODE e não definidos _MBCS |
_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 |
---|---|
_mbsnbset_s |
<mbstring.h> |
_mbsnbset_s_l |
<mbstring.h> |
Para mais informações, consulte Compatibilidadede 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 );
}
Saída
Equivalência do .NET Framework
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.
Consulte também
Referência
Manipulação de cadeia de caracteres (CRT)
_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l