Partager via


_mbsnbset_s, _mbsnbset_s_l

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

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.

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
    Définit la taille du tampon de chaine.

  • c
    Paramètre codé sur un octet ou à caractères multioctets.

  • count
    Nombre d'octets à définir.

  • locale
    Paramètres régionaux à utiliser.

Valeur de retour

Zéro dans le cas d'une opération réussie, sinon affiche un code d'erreur.

Notes

Les fonctions _mbsnbset_s et _mbsnbset_s_l définissent, au plus, les premiers octets count de str à c. Si count est supérieur à la longueur de str, la longueur de str est utilisée au lieu de count. Si c est un caractère multioctets et ne peut pas être défini 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 mettent pas de null final à la fin de str.

_mbsnbset_s et _mbsnbset_s_l ressemblent à _mbsnset, sauf qu'ils définissent des octets count plutôt que des caractères count de 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 de paramètre. Si l'exécution est autorisée à se poursuivre, errno est défini à EINVAL et la fonction retourne NULL. En outre, si c n'est pas un caractère multioctets valide, errno a la valeur EINVAL et un espace est utilisé à la place.

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, _wsetlocale pour plus d'informations. La version _mbsnbset_s de cette fonction utilise les paramètres locaux actuels pour ce comportement dépendant des paramètres locaux; la version _mbsnbset_s_l est identique à part qu'elle utilise les paramètres locaux qui sont passés à la place. 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, en éliminant le besoin de spécifier un argument de taille. Pour plus d'informations, consultez Sécuriser les surcharges de modèle.

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

Mappages de routines de texte générique

Routine Tchar.h

_UNICODE et _MBCS non définis

_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 sur la 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