_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.
Importante |
---|
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)
_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l