Nous recommandons d’utiliser Visual Studio 2017

_mbsnbset_s, _mbsnbset_s_l

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Attribue aux n premiers octets 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é de la bibliothèque CRT.

System_CAPS_ICON_important.jpg 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
Taille de la mémoire tampon de chaîne.

c
Paramètre de caractère codé sur un octet ou multioctet.

count
Nombre d'octets à définir.

locale
Paramètres régionaux à utiliser.

Zéro en cas de réussite ; code d'erreur dans un autre cas.

Les fonctions _mbsnbset_s et _mbsnbset_s_l attribuent, au plus, aux count premiers octets de str la valeur c. Si la valeur count est supérieure à la longueur de str, la longueur de str est utilisée à la place de count. Si c est un caractère multioctet et ne peut pas être défini entièrement dans le dernier octet spécifié par count, le dernier octet est rempli avec un caractère vide. _mbsnbset_s et _mbsnbset_s_l ne placent pas de caractère null de fin à la fin de str.

Les fonctions _mbsnbset_s et _mbsnbset_s_l ressemblent à _mbsnset, à ceci près qu'elles définissent count octets plutôt que count caractères de c.

Si str est NULL ou count est égal à 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 a la valeur EINVAL et la fonction retourne une valeur NULL. De même, 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 définition de la LC_CTYPE catégorie de paramètres régionaux ; consultez setlocale, _wsetlocale pour plus d’informations. La version _mbsnbset_s de cette fonction utilise les paramètres régionaux actifs pour ce comportement dépendant des paramètres régionaux ; la version _mbsnbset_s_l est identique, à ceci près qu'elle utilise à la place les paramètres régionaux qui sont passés. Pour plus d’informations, consultez Locale.

En C++, l’utilisation de ces fonctions est simplifiée par les surcharges de modèle ; les surcharges peuvent déduire automatiquement la longueur de la mémoire tampon, ce qui évite ainsi d’avoir à spécifier un argument de taille. Pour plus d'informations, consultez Secure Template Overloads.

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
RoutineEn-tête requis
_mbsnbset_s<mbstring.h>
_mbsnbset_s_l<mbstring.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

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

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

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

Manipulation de chaînes
_mbsnbcat, _mbsnbcat_l
_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l
_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l

Afficher: