_mbsnbset_s
, _mbsnbset_s_l
Establece los primeros n bytes de una cadena de caracteres multibyte en un carácter especificado. Estas versiones de , _mbsnbset_l
tienen mejoras de_mbsnbset
seguridad, como se describe en Características de seguridad de CRT.
Importante
Esta API no se puede 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
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
Cadena que se va a modificar.
size
Tamaño del búfer de cadena.
c
Valor del carácter de un solo byte o multibyte.
count
Número de bytes que se van a establecer.
locale
Configuración regional que se va a usar.
Valor devuelto
Cero si es correcto; en caso contrario, código de error.
Comentarios
Las funciones _mbsnbset_s
y _mbsnbset_s_l
establecen, como máximo, los primeros count
bytes de str
en c
. Si count
es mayor que la longitud de str
, se usa la longitud de str
en lugar de count
. Si c
es un carácter multibyte y no se puede establecer completamente en el último byte especificado por count
, el último byte se rellena con un carácter en blanco. _mbsnbset_s
y _mbsnbset_s_l
no coloquen un valor NULL de terminación al final de str
.
_mbsnbset_s
y _mbsnbset_s_l
son similares a _mbsnset
, salvo en que establecen count
bytes en lugar de count
caracteres de c
.
Si str
es o count
es NULL
cero, esta función genera una excepción de parámetro no válida, como se describe en Validación de parámetros. Si la ejecución puede continuar, errno
está establecido en EINVAL
y la función devuelve NULL
. Además, si c
no es un carácter multibyte válido, errno
se establece EINVAL
en y se usa un espacio en su lugar.
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
. La versión _mbsnbset_s
de esta función usa la configuración regional actual de su comportamiento dependiente de la configuración regional; la versión _mbsnbset_s_l
es idéntica, salvo que usa el parámetro de configuración regional que se pasa. Para obtener más información, vea Locale.
En C++, el uso de estas funciones se simplifica mediante sobrecargas de plantilla. Las sobrecargas pueden deducir automáticamente la longitud del búfer, lo que elimina la necesidad de especificar un argumento de tamaño. Para obtener más información, consulte Sobrecargas de plantilla seguras.
Las versiones de la biblioteca de depuración de estas funciones rellenan primero el búfer con 0xFE. Para deshabilitar este comportamiento, use _CrtSetDebugFillThreshold
.
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 |
---|---|---|---|
_tcsnset_s |
_strnset_s |
_mbsnbset_s |
_wcsnset_s |
_tcsnset_s_l |
_strnset_s _l |
_mbsnbset_s_l |
_wcsnset_s_l |
Requisitos
Routine | Encabezado necesario |
---|---|
_mbsnbset_s |
<mbstring.h> |
_mbsnbset_s_l |
<mbstring.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
// 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 );
}
Output
Before: This is a test
After: **** is a test
Consulte también
Manipulación de cadenas
_mbsnbcat
, _mbsnbcat_l
_strnset
, _strnset_l
, _wcsnset
, _wcsnset_l
, , _mbsnset
, _mbsnset_l
_strset
, _strset_l
, _wcsset
, _wcsset_l
, , _mbsset
, _mbsset_l