_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.

Observação importanteImportante

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)

_mbsnbcat, _mbsnbcat_l

_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l