_mbsnbset_s, _mbsnbset_s_l

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Establece los primeros n bytes de una cadena de caracteres multibyte en un carácter especificado. Estas versiones de _mbsnbset, _mbsnbset_l tienen mejoras de seguridad, como se describe en características de seguridad de CRT.

System_CAPS_ICON_important.jpg Importante

Esta API no se puede usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución. Para más información, vea Funciones de CRT no admitidas con /ZW.

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.

Cero si es correcto; en caso contrario, código de error.

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 totalmente en el último byte especificado por count, el último byte se completa con un carácter en blanco. _mbsnbset_s y _mbsnbset_s_l no colocan un carácter de terminación nulo 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 NULL o count es cero, esta función genera una excepción de parámetro no válido, como se describe en validación del parámetro. Si la ejecución puede continuar, errno se establece en EINVAL y la función devuelve NULL. Además, si c no es un carácter multibyte válido, errno se establece en EINVAL y se usa un espacio en su lugar.

El valor de salida se ve afectado por el valor de la LC_CTYPE configuración de categoría de la configuración regional; vea setlocale, _wsetlocale para obtener más información. 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, consulta Secure Template Overloads.

Las versiones de depuración de estas funciones rellenan primero el búfer con 0xFD. Para deshabilitar este comportamiento, use _CrtSetDebugFillThreshold.

Asignaciones de rutina 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
RutinaEncabezado necesario
_mbsnbset_s<mbstring.h>
_mbsnbset_s_l<mbstring.h>

Para obtener más información sobre compatibilidad, vea Compatibility.

// 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 );  
}  

Before: This is a test  
After:  **** is a test  

No es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.

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

Mostrar: