Compartilhar via


_mbsnbset, _mbsnbset_l

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

Importante

Esta API não pode ser usada em aplicativos que executam no Tempo de Execução do Windows.Para obter mais informações, consulte Funções CRT sem suporte pelo /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 alterada.

  • 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

_mbsnbset retorna um ponteiro para a cadeia de caracteres alterada.

Comentários

As funções _mbsnbset e _mbsnbset_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 for um caractere de multibyte e não puder ser definido completamente no último byte especificado por count, o último byte será preenchido com um caractere em branco. _mbsnbset e _mbsnbset_lnão colocam um nulo de conclusão no final de str.

_mbsnbset e _mbsnbset_lsão semelhantes a _mbsnset, exceto que define os bytes de count em vez de caracterescount de c.

Se str for NULL ou count for zero, essa função gerará uma exceção de parâmetro inválido, 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. A versão _mbsnbset dessa função usa o local atual para esse comportamento dependente de local; a versão _mbsnbset_l é idêntica, exceto pelo fato de que ela usa o parâmetro de local transmitido. Para obter mais informações, consulte Localidade.

Observação de segurança   Esta API resulta em uma potencial ameaça causada por um problema de estouro de buffer. Problemas de saturação de buffer é um método frequente de ataque do sistema, resultando em elevação injustificável de privilégio. Para obter mais informações, consulte Evitando saturações de buffer.

Mapeamentos da rotina de texto genérico

Rotina Tchar.h

_UNICODE e _MBCS não definidos

_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 obter mais informações sobre compatibilidade, consulte Compatibilidade.

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 chamadas de plataformas.

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