Share via


_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; vea _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 con /ZW.

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 totalmente en el último byte especificado por count, el último byte se completa con un carácter en blanco. _mbsnbset y _mbsnbset_lno colocan un carácter de terminación nulo al final de str.

_mbsnbset y _mbsnbset_lson parecidas a _mbsnset, salvo que establecen los 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 de parámetros. 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 categoría LC_CTYPE de la configuración regional; vea setlocale para obtener más información. La versión _mbsnbset de esta función usa la configuración regional actual de su comportamiento dependiente de la configuración regional; la versión _mbsnbset_l es idéntica, salvo que usa el parámetro de configuración regional que se pasa. Para obtener más información, vea Configuración regional.

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, vea Evitar saturaciones del búfer.

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

_mbsnbset

<mbstring.h>

_mbsnbset_l

<mbstring.h>

Para obtener más información sobre compatibilidad, vea 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 );
}

Resultados

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

Equivalente en .NET Framework

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.

Vea también

Referencia

Manipulación de cadenas (CRT)

_mbsnbcat, _mbsnbcat_l

_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l