_mbsnbset_s, _mbsnbset_s_l
conjunto a primeira n bytes de uma seqüência de caracteres multibyte em um caractere especificado. Versões de _mbsnbset, _mbsnbset_l com aprimoramentos de segurança sistema autônomo descrito em Aprimoramentos de segurança no CRT.
errno_t _mbsnbset_s(
unsigned char *str,
size_t size,
unsigned int c,
size_t count
);
errno_t _mbsnbset_s_l(
unsigned char *str,
size_t size,
unsigned int c,
size_t count,
_locale_t locale
);
template <size_t size>
errno_t _mbsnbset_s(
unsigned char (&str)[size],
unsigned int c,
size_t count
); // C++ only
template <size_t size>
errno_t _mbsnbset_s_l(
unsigned char (&str)[size],
unsigned int c,
size_t count,
_locale_t locale
); // C++ only
Parâmetros
str
Seqüência de caracteres a ser alterado.size
O dimensionar do buffer de cadeia de caracteres.c
Configuração de um byte ou caractere de multibyte.count
Número de bytes a ser conjunto.locale
Localidade usar.
Valor de retorno
Zero se for bem-sucedida; caso contrário, um código de erro.
Comentários
The _mbsnbset_s e _mbsnbset_s_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_s e _mbsnbset_s_l Não coloque um encerramento nulo no participante do str.
_mbsnbset_s e _mbsnbset_s_l são semelhantes a _mbsnset, exceto que eles conjunto count bytes em vez de count caracteres do 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_s versão essa função usa a localidade corrente para esse comportamento dependente de localidade; o _mbsnbset_s_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.
No C++, usando essas funções é simplificado pela sobrecargas de modelo; sobrecargas de podem inferir comprimento do buffer automaticamente, eliminando a necessidade de especificar um argumento de dimensionar.For more information, see Proteger overloads de modelo.
As versões de depurar dessas funções primeiro preenchem o buffer com 0xFD.Para desabilitar esse comportamento, use _CrtSetDebugFillThreshold.
Mapeamentos de rotina de texto genérica
Rotina tchar.h |
_UNICODE e _MBCS não definido |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcsnset_s |
_strnset_s |
_mbsnbset_s |
_wcsnset_s |
_tcsnset_s_l |
_strnset_s _l |
_mbsnbset_s_l |
_wcsnset_s_l |
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_mbsnbset_s |
<mbstring.h> |
_mbsnbset_s_l |
<mbstring.h> |
Para obter mais informações de compatibilidade, consulte Compatibilidade na introdução.
Exemplo
// crt_mbsnbset_s.c
#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_s( string, sizeof(string), '*', 4 );
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