_mbsnbset, _mbsnbset_l
conjunto a primeira n bytes de uma seqüência de caracteres multibyte em um caractere especificado. Versões mais seguras dessas funções estão disponível; consulte _mbsnbset_s, _mbsnbset_s_l.
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
Seqüência de caracteres a ser alterado.c
Configuração de um byte ou caractere de multibyte.count
Número de bytes a ser conjunto.locale
Localidade usar.
Valor de retorno
_mbsnbset Retorna um ponteiro para a seqüência alterada.
Comentários
The _mbsnbset e _mbsnbset_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 and _mbsnbset_ldoes not place a terminating null at the end of str.
_mbsnbset and _mbsnbset_lis similar to _mbsnset, except that it sets count bytes rather than count characters of 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 versão essa função usa a localidade corrente para esse comportamento dependente de localidade; o _mbsnbset_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.
Observação de segurança Essa API gera uma ameaça potencial colocada um problema de saturação de buffer.Problemas de saturação de buffer são um método de ataque do sistema, resultando em uma elevação do privilégio unwarranted freqüente.Para obter mais informações, consulte Evitar saturações de buffer.
Mapeamentos de rotina de texto genérica
Rotina tchar.h |
_UNICODE e _MBCS não definido |
_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 de compatibilidade, consulte 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
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)
_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l