Compartilhar via


_mbsnbset, _mbsnbset_l

Definir os primeiros bytes de n de uma cadeia de caracteres de multibyte- caracteres em um caractere especificado.Versões mais seguros dessas funções estão disponíveis; consulte _mbsnbset_s, _mbsnbset_s_l.

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.

unsigned char *_mbsnbset( unsigned char *str, unsigned int c, size_t count ); unsigned char *_mbsnbset_l( unsigned char *str, unsigned int c, size_t count, _locale_t locale );

Parâmetros

  • str
    Cadeia de caracteres a ser modificada.

  • 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

_mbsnbset retorna um ponteiro para a cadeia de caracteres modificada.

Comentários

_mbsnbset e _mbsnbset_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 especificado por count, o byte mais recente é preenchido com um caractere em branco._mbsnbset e _mbsnbset_lnão colocam um zero finalizando no final de str.

_mbsnbset e _mbsnbset_lsã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 inválido de parâmetros 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 para mais informações.A versão de _mbsnbset dessa função usa a localidade atual para este comportamento de são dependentes; a versão de _mbsnbset_l é idêntica exceto que ela uso de localidade que o parâmetro passado em vez disso.Para obter mais informações, consulte Localidade.

Nota de segurança Esta API provoca uma ameaça potencial causada por um problema de estouro de buffer.Problemas de estouro de buffer são um método frequente de ataque do sistema, resultando em uma despropositado elevação de privilégio.Para obter mais informações, consulte Evitando estouros de buffer.

Mapeamentos da rotina de Genérico- texto

Rotina de Tchar.h

_UNICODE e não definidos _MBCS

_MBCS definido

_UNICODE definido

_tcsnset

_strnset

_mbsnbset

_wcsnset

_tcsnset_l

_strnset_l

_mbsnbset_l

_wcsnset_l

Requisitos

Rotina

Cabeçalho necessário

_mbsnbset

<mbstring.h>

_mbsnbset_l

<mbstring.h>

Para mais informações, consulte Compatibilidade de compatibilidade na introdução.

Exemplo

// crt_mbsnbset.c
// compile with: /W3
#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( string, '*', 4 ); // C4996
   // Note; _mbsnbset is deprecated; consider _mbsnbset_s
   printf( "After:  %s\n", string );
}

Saída

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

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