_mbsnbset_s, _mbsnbset_s_l

Définit les premiers octets d' n d'une chaîne de caractères multioctets à un caractère spécifié.Ces versions de _mbsnbset, _mbsnbset_l ont des améliorations de sécurité, comme décrit dans Fonctionnalités de sécurité du CRT.

Important

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

Paramètres

  • str
    Chaîne à modifier.

  • size
    La taille de la mémoire tampon de chaîne.

  • c
    Configuration codée sur un octet ou à caractères multioctets.

  • count
    Nombre d'octets à définir.

  • locale
    Paramètres régionaux à utiliser.

Valeur de retour

Zéro si l'opération a réussi ; sinon, le code d'erreur.

Notes

Les fonctions d' _mbsnbset_s et d' _mbsnbset_s_l définissent, au plus, les premiers octets d' count d' str à c.Si count est supérieur à la longueur d' str, la longueur d' str est utilisée au lieu d' count.Si c est un caractère multioctet et ne peut pas être définie complètement dans le dernier octet spécifié par count, le dernier octet est rempli avec un espace._mbsnbset_s et _mbsnbset_s_l ne définit pas la valeur null de fin à la fin de str.

_mbsnbset_s et _mbsnbset_s_l ressemble à _mbsnset, sauf qu'ils définissent des octets d' count plutôt que des caractères d' count d' c.

Si str est NULL ou count est zéro, cette fonction génère une exception de paramètre non valide, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution pour continuer, errno a la valeur EINVAL et la fonction retourne NULL.En outre, si c n'est pas un caractère multioctet valide, errno a la valeur EINVAL et un espace est utilisé à la place.

La valeur de sortie est affectée par la configuration de la définition de catégorie d' LC_CTYPE des paramètres régionaux ; consultez setlocale, _wsetlocale pour plus d'informations.La version d' _mbsnbset_s de cette fonction utilise les paramètres régionaux définis pour ce comportement dépendant des paramètres régionaux ; la version d' _mbsnbset_s_l est identique à la différence qu'elle utilise à la place le paramètre de paramètres régionaux qui est passé.Pour plus d'informations, consultez Paramètres régionaux.

En C++, l'utilisation de ces fonctions est simplifiée par des surcharges de modèle ; les surcharges peuvent également déduire la longueur de la mémoire tampon automatiquement et éviter ainsi le besoin de spécifier un argument de taille.Pour plus d'informations, consultez Surcharges sécurisées de modèle.

Les versions debug de ces fonctions exécutent d'abord mémoire tampon de 0xFD.Pour désactiver ce comportement, utilisez _CrtSetDebugFillThreshold.

Mappages de routines de texte générique

Routine de Tchar.h

_UNICODE et non définis _MBCS

_MBCS défini

_UNICODE défini

_tcsnset_s

_strnset_s

_mbsnbset_s

_wcsnset_s

_tcsnset_s_l

_strnset_s _l

_mbsnbset_s_l

_wcsnset_s_l

Configuration requise

Routine

En-tête requis

_mbsnbset_s

<mbstring.h>

_mbsnbset_s_l

<mbstring.h>

Pour plus d'informations de compatibilité, consultez Compatibilité.

Exemple

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

Sortie

  

Équivalent .NET Framework

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

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