Partager via


_mbsnbset, _mbsnbset_l

Sets the first n bytes of a multibyte-character string to a specified character. Des versions plus sécurisées de ces fonctions sont disponibles ; consultez _mbsnbset_s, _mbsnbset_s_l.

Important

Cette API ne peut pas être utilisée dans les applications qui s'exécutent dans le Windows Runtime.Pour plus d'informations, consultez Fonctions CRT non prises en charge avec /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
);

Paramètres

  • str
    Chaîne à modifier.

  • c
    Single-byte or multibyte-character setting.

  • count
    Number of bytes to be set.

  • locale
    Paramètres régionaux à utiliser.

Valeur de retour

_mbsnbset returns a pointer to the altered string.

Notes

The _mbsnbset and _mbsnbset_l functions set, at most, the first count bytes of str to c. If count is greater than the length of str, the length of str is used instead of count. If c is a multibyte character and cannot be set entirely into the last byte specified by count, the last byte is padded with a blank character. _mbsnbset and _mbsnbset_ldoes not place a terminating null at the end of str.

_mbsnbset and _mbsnbset_lis similar to _mbsnset, except that it sets count bytes rather than count characters of c.

If str is NULL or count is zero, this function generates an invalid parameter exception as described in Validation de paramètre. If execution is allowed to continue, errno is set to EINVAL and the function returns NULL. Also, if c is not a valid multibyte character, errno is set to EINVAL and a space is used instead.

La valeur de la sortie est affectée par la valeur du paramètre de la catégorie LC_CTYPE des paramètres régionaux ; consultez setlocale, pour plus d'informations. La version _mbsnbset de cette fonction utilise les paramètres régionaux actuels pour ce comportement dépendant des paramètres régionaux; la version _mbsnbset_l est identique à part qu'elle utilise les paramètres régionaux passés à place. Pour plus d'informations, consultez Paramètres régionaux.

Security Note   This API incurs a potential threat brought about by a buffer overrun problem. Les dépassements de mémoire tampon sont une méthode fréquente d'attaque du système, ce qui provoque une élévation des privilèges injustifiée. Pour plus d'informations, consultez Solutions contre les dépassements de mémoire tampon.

Mappages de routines de texte générique

Routine Tchar.h

_UNICODE et _MBCS non définis

_MBCS défini

_UNICODE défini

_tcsnset

_strnset

_mbsnbset

_wcsnset

_tcsnset_l

_strnset_l

_mbsnbset_l

_wcsnset_l

Configuration requise

Routine

En-tête requis

_mbsnbset

<mbstring.h>

_mbsnbset_l

<mbstring.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité.

Exemple

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

Sortie

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

Équivalent .NET Framework

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.

Voir aussi

Référence

Manipulation de chaînes (CRT)

_mbsnbcat, _mbsnbcat_l

_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l