Compartilhar via


_mbsnbset_s, _mbsnbset_s_l

Defina os primeiros bytes n de uma cadeia de caracteres multibyte como 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

Não é possível usar essa API em aplicativos executados no Tempo de Execução do Windows.Para obter mais informações, consulte Funções CRT sem suporte pelo /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 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 serem definidos.

  • locale
    Localidade a ser usada.

Valor de retorno

Zero se bem-sucedido; caso contrário, um código de erro.

Comentários

As funções _mbsnbset_s e _mbsnbset_s_l definem, no máximo, os primeiros count bytes de str para c. Se count for maior que o tamanho de str, o tamanho de str será usado no lugar de count. Se c é um caracteres multibyte e não pode ser definido total em bytes do último especificado por count, o byte o último é preenchido com um caractere em branco. _mbsnbset_s e _mbsnbset_s_l não usam um valor nulo encerrando no final de str.

_mbsnbset_s e _mbsnbset_s_l lembram a _mbsnset, exceto que define bytes de count em vez de caracteres de count de c.

Se str é NULL ou count for zero, essa função gerenciar uma exceção inválido do parâmetro, conforme descrito em Validação do parâmetro. Se a execução puder continuar, errno será definido como EINVAL e a função retornará NULL. Além disso, se c não for um caractere multibyte válido, errno será definido como EINVAL e será usado um espaço no lugar.

O valor de saída é afetado pela configuração da categoria LC_CTYPE de localidade. Para obter mais informações, consulte setlocale, _wsetlocale. A versão de _mbsnbset_s dessa função usa a localidade atual para este comportamento dependente de localidade; a versão de _mbsnbset_s_l é idêntica exceto que usa o parâmetro de localidade que é passado. Para obter mais informações, consulte Localidade.

Em C++, o uso dessas funções é simplificado por sobrecargas do modelo; as sobrecargas pode deduzir 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 seguras.

As versões de depuração dessas funções preenchem primeiro o buffer com 0xFD. Para desabilitar esse comportamento, use _CrtSetDebugFillThreshold.

Mapeamentos da 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

Requisitos

Rotina

Cabeçalho necessário

_mbsnbset_s

<mbstring.h>

_mbsnbset_s_l

<mbstring.h>

Para obter mais informações de 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 );
}

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 da cadeia de caracteres (CRT)

_mbsnbcat, _mbsnbcat_l

_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l