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