_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l

Establece los caracteres de una cadena en un carácter. Hay disponibles versiones más seguras de estas funciones; consulte _strset_s, _strset_s_l, _wcsset_s, _wcsset_s_l, _mbsset_s, _mbsset_s_l.

Importante

_mbsset y _mbsset_l no se pueden usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución. Para obtener más información, vea Funciones de CRT no admitidas en aplicaciones de la Plataforma universal de Windows.

Sintaxis

char *_strset(
   char *str,
   int c
);
char *_strset_l(
   char *str,
   int c,
   _locale_t locale
);
wchar_t *_wcsset(
   wchar_t *str,
   wchar_t c
);
wchar_t *_wcsset_l(
   wchar_t *str,
   wchar_t c,
   _locale_t locale
);
unsigned char *_mbsset(
   unsigned char *str,
   unsigned int c
);
unsigned char *_mbsset_l(
   unsigned char *str,
   unsigned int c,
   _locale_t locale
);

Parámetros

str
Cadena terminada en NULL que se va a establecer.

c
Especificación de carácter.

locale
Configuración regional que se va a usar.

Valor devuelto

Devuelve un puntero a la cadena modificada.

Comentarios

La función _strset establece todos los caracteres (excepto el carácter nulo de terminación) de str en c, convertido en char. _wcsset y _mbsset_l son versiones con caracteres anchos y versiones de caracteres multibyte de _strset, y los tipos de datos de los argumentos y los valores devueltos varían en consecuencia. Por lo demás, estas funciones se comportan exactamente igual.

_mbsset valida sus parámetros. Si str es un puntero nulo, se invoca el controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, _mbsset devuelve NULL y establece errno en EINVAL. _strset y _wcsset no validen sus parámetros.

El valor de salida se ve afectado por el valor de la categoría LC_CTYPE de la configuración regional. Para obtener más información, vea setlocale. Las versiones de estas funciones son idénticas, salvo que las que no tienen el sufijo _l usan la configuración regional actual y las que tienen el sufijo _l usan el parámetro de configuración regional que se pasa. Para obtener más información, vea Locale.

Importante

Estas funciones pueden ser vulnerables a amenazas de saturación del búfer. Las saturaciones del búfer se pueden usar para ataques del sistema, ya que pueden producir una elevación de privilegios no justificada. Para obtener más información, consulte Evitar saturaciones de búfer.

De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.

Asignaciones de rutinas de texto genérico

Rutina TCHAR.H _UNICODE y _MBCS no definidos _MBCS definido _UNICODE definido
_tcsset _strset _mbsset _wcsset
_tcsset_l _strset_l _mbsset_l _wcsset_l

Requisitos

Routine Encabezado necesario
_strset <string.h>
_strset_l <tchar.h>
_wcsset <string.h> o <wchar.h>
_wcsset_l <tchar.h>
_mbsset, _mbsset_l <mbstring.h>

Para obtener más información sobre compatibilidad, consulte Compatibilidad.

Ejemplo

// crt_strset.c
// compile with: /W3

#include <string.h>
#include <stdio.h>

int main( void )
{
   char string[] = "Fill the string with something.";
   printf( "Before: %s\n", string );
   _strset( string, '*' ); // C4996
   // Note: _strset is deprecated; consider using _strset_s instead
   printf( "After:  %s\n", string );
}
Before: Fill the string with something.
After:  *******************************

Consulte también

Manipulación de cadenas
Configuración regional
Interpretación de secuencias de caracteres multibyte
_mbsnbset, _mbsnbset_l
memset, wmemset
strcat, wcscat, _mbscat
strcmp, wcscmp, _mbscmp
strcpy, wcscpy, _mbscpy
_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l