Partilhar via


_strnset_s, _strnset_s_l, _wcsnset_s, _wcsnset_s_l, _mbsnset_s, _mbsnset_s_l

Inicializa os caracteres de uma cadeia de caracteres para um determinado caractere. Essas versões de _strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l têm aprimoramentos de segurança, como descrito em Recursos de segurança no CRT.

Importante

_mbsnset_s e _mbsnset_s_l não podem ser usados em aplicativos executados no Tempo de Execução do Windows.Para obter mais informações, consulte Funções CRT sem suporte pelo /ZW.

errno_t _strnset_s(
   char *str,
   size_t numberOfElements,
   int c,
   size_t count 
);
errno_t _strnset_s_l(
   char *str,
   size_t numberOfElements,
   int c,
   size_t count,
   locale_t locale
);
errno_t _wcsnset_s(
   wchar_t *str,
   size_t numberOfElements,
   wchar_t c,
   size_t count 
);
errno_t _wcsnset_s_l(
   wchar_t *str,
   size_t numberOfElements,
   wchar_t c,
   size_t count,
   _locale_t locale
);
errno_t _mbsnset_s(
   unsigned char *str,
   size_t numberOfElements,
   unsigned int c,
   size_t count 
);
errno_t _mbsnset_s_l(
   unsigned char *str,
   size_t numberOfElements,
   unsigned int c,
   size_t count,
   _locale_t locale
);

Parâmetros

  • str
    Cadeia de caracteres a ser alterada.

  • numberOfElements
    O tamanho do buffer str.

  • c
    Configuração de caracteres.

  • count
    Número de caracteres a serem definidos.

  • locale
    Localidade a ser usada.

Valor de retorno

Zero se tiver êxito, caso contrário, um código de erro.

Essas funções validam seus argumentos. Se str não for uma cadeia de caracteres válida terminada em nulo ou o argumento de tamanho for menor ou igual a 0, o manipulador de parâmetro inválido á chamado, conforme descrito em Validação do parâmetro. Se a exceção puder continuar, essas funções retornarão um código de erro e definirão errno como código de erro. O código de erro padrão é EINVAL se um valor mais específico não se aplicar.

Comentários

Essas funções definem, no máximo, os primeiros caracteres count de str a c. Se count for maior que o tamanho de str, o tamanho de str será usado no lugar de count. Um erro ocorrerá se count for maior que numberOfElements e ambos os parâmetros forem maiores que o tamanho de str.

_wcsnset_s e _mbsnset_s são versões de caracteres largos e de multibyte de _strnset_s. O argumento de cadeia de caracteres de _wcsnset_s é uma cadeia de caracteres largos; enquanto _mbsnset_s é uma cadeia de caracteres multibyte. Essas três funções se comportam de forma idêntica.

O valor de saída é afetado pela configuração da categoria LC_CTYPE de localidade. Para obter mais informações, consulte setlocale. As versões dessas funções sem o sufixo _l usam a localidade atual para esse comportamento dependente da localidade; as versões com o sufixo_l são idênticas, exceto que elas usam o parâmetro de localidade informado. Para obter mais informações, consulte Localidade.

As versões de depuração dessas funções preenchem primeiro o buffer com 0xFD. Para desabilitar esse comportamento, use _CrtSetDebugFillThreshold.

Mapeamentos da rotina de texto genérico

Rotina TCHAR.H

_UNICODE & _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

_strnset_s

<string.h>

_strnset_s_l

<tchar.h>

_wcsnset_s

<string.h> ou <wchar.h>

_wcsnset_s_l

<tchar.h>

_mbsnset_s, _mbsnset_s_l

<mbstring.h>

Para informações adicionais de compatibilidade, consulte Compatibilidade.

Exemplo

// crt_strnset_s.c
#include <string.h>
#include <stdio.h>

int main( void )
{
   char string[15] = "This is a test";
   /* Set not more than 4 characters of string to be *'s */
   printf( "Before: %s\n", string );
   _strnset_s( string, sizeof(string), '*', 4 );
   printf( "After:  %s\n", string );
}
  

Equivalência do .NET Framework

System::String::Replace

Consulte também

Referência

Manipulação da cadeia de caracteres (CRT)

Localidade

Interpretação de sequências de caracteres multibyte

strcat, wcscat, _mbscat

strcmp, wcscmp, _mbscmp

strcpy, wcscpy, _mbscpy

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l