_mbsnbset_s
, _mbsnbset_s_l
Définit le premier n octets d’une chaîne de caractères multioctets sur un caractère spécifié. Ces versions ont des améliorations de _mbsnbset
_mbsnbset_l
sécurité, comme décrit dans les fonctionnalités de sécurité du 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 dans les applications de la plateforme Windows universelle.
Syntaxe
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.
Valeur retournée
Zéro en cas de réussite ; code d'erreur dans un autre cas.
Notes
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
. S’il c
s’agit d’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 rembourré avec un caractère vide. _mbsnbset_s
et _mbsnbset_s_l
ne placez pas une valeur 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
elle est NULL
égale ou count
égale à zéro, cette fonction génère une exception de paramètre non valide, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à se poursuivre, errno
a la valeur EINVAL
et la fonction retourne NULL
. En outre, s’il c
n’est pas un caractère multioctet valide, errno
est défini EINVAL
sur 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. Pour plus d’informations, consultez setlocale
. 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 Sécuriser les surcharges de modèle.
Les versions de bibliothèque de débogage de ces fonctions remplissent d’abord la mémoire tampon avec 0xFE. Pour désactiver ce comportement, utilisez _CrtSetDebugFillThreshold
.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
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 |
Spécifications
Routine | En-tête requis |
---|---|
_mbsnbset_s |
<mbstring.h> |
_mbsnbset_s_l |
<mbstring.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
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
Before: This is a test
After: **** is a test
Voir aussi
Manipulation de chaînes
_mbsnbcat
, _mbsnbcat_l
_strnset
, , _strnset_l
, _wcsnset_l
_wcsnset
, , _mbsnset
_mbsnset_l
_strset
, , _strset_l
, _wcsset_l
_wcsset
, , _mbsset
_mbsset_l