Compartilhar via


_mbsnbset_s, _mbsnbset_s_l

conjunto a primeira n bytes de uma seqüência de caracteres multibyte em um caractere especificado. Versões de _mbsnbset, _mbsnbset_l com aprimoramentos de segurança sistema autônomo descrito em Aprimoramentos de segurança no CRT.

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
    Seqüência de caracteres a ser alterado.

  • size
    O dimensionar do buffer de cadeia de caracteres.

  • c
    Configuração de um byte ou caractere de multibyte.

  • count
    Número de bytes a ser conjunto.

  • locale
    Localidade usar.

Valor de retorno

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

Comentários

The _mbsnbset_s e _mbsnbset_s_l funções conjunto, no máximo, o primeiro count bytes de str para c. If count é maior do que o comprimento de str, o tamanho de str é usado em vez de count. If c é um caractere de vários bytes e não pode ser conjunto inteiramente para o último byte especificado por count, o último byte é preenchido com um caractere em branco. _mbsnbset_s e _mbsnbset_s_l Não coloque um encerramento nulo no participante do str.

_mbsnbset_s e _mbsnbset_s_l são semelhantes a _mbsnset, exceto que eles conjunto count bytes em vez de count caracteres do c.

If str é NULL ou count é zero, esta função gera uma exceção de parâmetro inválido, 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 é um caractere válido multibyte, errno é definido como EINVAL e um espaço é usado.

O valor de saída é afetado pela configuração do LC_CTYPE categoria de configuração da localidade; consulte setlocale para obter mais informações.The _mbsnbset_s versão essa função usa a localidade corrente para esse comportamento dependente de localidade; o _mbsnbset_s_l versão é idêntica, exceto pelo fato de que ele usar o parâmetro de localidade passado em vez disso.For more information, see Localidade.

No C++, usando essas funções é simplificado pela sobrecargas de modelo; sobrecargas de podem inferir comprimento do buffer automaticamente, eliminando a necessidade de especificar um argumento de dimensionar.For more information, see Proteger overloads de modelo.

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

Mapeamentos de rotina de texto genérica

Rotina tchar.h

_UNICODE e _MBCS não definido

_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 na introdução.

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

Before: This is a test
After:  **** is a test

Equivalente do NET Framework

Não aplicável. Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

Manipulação de seqüência de caracteres (CRT)

_mbsnbcat, _mbsnbcat_l

_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l