Compartir a través de


_mbsnbset, _mbsnbset_l

Establece los primeros n bytes de una cadena de caracteres multibyte en un carácter especificado. Hay disponibles versiones más seguras de estas funciones; consulte _mbsnbset_s, _mbsnbset_s_l.

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

unsigned char *_mbsnbset(
   unsigned char *str,
   unsigned int c,
   size_t count
);
unsigned char *_mbsnbset_l(
   unsigned char *str,
   unsigned int c,
   size_t count,
   _locale_t locale
);

Parámetros

str
Cadena que se va a modificar.

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

_mbsnbset devuelve un puntero a la cadena modificada.

Comentarios

Las funciones _mbsnbset y _mbsnbset_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 y _mbsnbset_l no coloca un valor NULL de terminación al final de str.

_mbsnbset y _mbsnbset_l es similar a _mbsnset, excepto que establece 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 _mbsnbset versión de esta función usa la configuración regional actual para este comportamiento dependiente de la configuración regional; la _mbsnbset_l versión es idéntica, salvo que usa el parámetro de configuración regional pasado en su lugar. Para obtener más información, vea Locale.

Nota de seguridad Esta API crea la posible amenaza de un problema de saturación del búfer. Los problemas de saturación del búfer son un método frecuente de ataque del sistema, que produce 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
_tcsnset _strnset _mbsnbset _wcsnset
_tcsnset_l _strnset_l _mbsnbset_l _wcsnset_l

Requisitos

Routine Encabezado necesario
_mbsnbset <mbstring.h>
_mbsnbset_l <mbstring.h>

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

Ejemplo

// crt_mbsnbset.c
// compile with: /W3
#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( string, '*', 4 ); // C4996
   // Note; _mbsnbset is deprecated; consider _mbsnbset_s
   printf( "After:  %s\n", string );
}

Salida

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