_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l
Inicializa los caracteres de una cadena en un carácter dado. Existen versiones más seguras de estas funciones; vea _strnset_s, _strnset_s_l, _wcsnset_s, _wcsnset_s_l, _mbsnset_s, _mbsnset_s_l.
Importante
_mbsnset y _mbsnset_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 con /ZW.
char *_strnset(
char *str,
int c,
size_t count
);
char *_strnset_l(
char *str,
int c,
size_t count,
locale_t locale
);
wchar_t *_wcsnset(
wchar_t *str,
wchar_t c,
size_t count
);
wchar_t *_wcsnset_l(
wchar_t *str,
wchar_t c,
size_t count,
_locale_t locale
);
unsigned char *_mbsnset(
unsigned char *str,
unsigned int c,
size_t count
);
unsigned char *_mbsnset_l(
unsigned char *str,
unsigned int c,
size_t count,
_locale_t locale
);
Parámetros
str
Cadena que se va a modificar.c
Especificación de carácter.count
Número de caracteres que se va a establecer.locale
Configuración regional que se va a usar.
Valor devuelto
Devuelve un puntero a la cadena modificada.
Comentarios
La función _strnset establece, como máximo, los primeros count caracteres de str en c (convertidos en char). Si count es mayor que la longitud de str, se usa la longitud de str en lugar de count.
_wcsnset y _mbsnset son versiones de caracteres anchos y multibyte de _strnset. Los argumentos de cadena y el valor devuelto de _wcsnset son cadenas de caracteres anchos; los de _mbsnset son cadenas de caracteres multibyte. Estas tres funciones se comportan exactamente igual.
_mbsnset 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, _mbsnset devuelve NULL y establece errno en EINVAL. _strnset y _wcsnset no validan sus parámetros.
El valor de la categoría LC_CTYPE de la configuración regional afecta al valor de salida; vea setlocale para obtener más información. Las versiones de estas funciones sin el sufijo _l usan la configuración regional actual de su comportamiento dependiente de la configuración regional; las versiones con el sufijo _l son idénticas salvo que usan el parámetro de configuración regional que se pasa. Para obtener más información, vea Configuración regional.
Asignaciones de rutina de texto genérico
Rutina TCHAR.H |
_UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcsnset |
_strnset |
_mbsnbset |
_wcsnset |
_tcsnset_l |
_strnset_l |
_mbsnbset_l |
_wcsnset_l |
Requisitos
Rutina |
Encabezado necesario |
---|---|
_strnset |
<string.h> |
_strnset_l |
<tchar.h> |
_wcsnset |
<string.h> o <wchar.h> |
_wcsnset_l |
<tchar.h> |
_mbsnset, _mbsnset_l |
<mbstring.h> |
Para obtener más información sobre compatibilidad, vea Compatibilidad.
Ejemplo
// crt_strnset.c
// compile with: /W3
#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( string, '*', 4 ); // C4996
// Note: _strnset is deprecated; consider using _strnset_s
printf( "After: %s\n", string );
}