_strnset_s, _strnset_s_l, _wcsnset_s, _wcsnset_s_l, _mbsnset_s, _mbsnset_s_l
Initialisez les caractères d'une chaîne à un caractère donné.Ce sont des versions de _strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l avec des améliorations de sécurité comme décrit dans Fonctionnalités de sécurité du CRT.
Important
_mbsnset_s et _mbsnset_s_l ne peuvent pas être utilisés dans les applications qui s'exécutent dans les fenêtres d'exécution.Pour plus d'informations, consultez Fonctions CRT non prises en charge avec /ZW.
errno_t _strnset_s(
char *str,
size_t numberOfElements,
int c,
size_t count
);
errno_t _strnset_s_l(
char *str,
size_t numberOfElements,
int c,
size_t count,
locale_t locale
);
errno_t _wcsnset_s(
wchar_t *str,
size_t numberOfElements,
wchar_t c,
size_t count
);
errno_t _wcsnset_s_l(
wchar_t *str,
size_t numberOfElements,
wchar_t c,
size_t count,
_locale_t locale
);
errno_t _mbsnset_s(
unsigned char *str,
size_t numberOfElements,
unsigned int c,
size_t count
);
errno_t _mbsnset_s_l(
unsigned char *str,
size_t numberOfElements,
unsigned int c,
size_t count,
_locale_t locale
);
Paramètres
str
Chaîne à modifier.numberOfElements
La taille de la mémoire tampon d' str .c
Configuration de caractère.count
Nombre de caractères à définir.locale
Paramètres régionaux à utiliser.
Valeur de retour
Zéro si l'opération a réussi, sinon code d'erreur.
Ces fonctions valident leurs arguments.Si str n'est pas une chaîne terminée par le caractère NULL valide ou l'argument de taille est inférieure ou égale à 0, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution pour continuer, ces fonctions retournent un code d'erreur et un ensemble errno à ce code d'erreur.Code d'erreur par défaut est EINVAL si plus de valeur spécifique ne s'applique pas.
Notes
Ces fonctions ont défini, au plus, les premiers caractères d' count d' str à c.Si count est supérieure à la taille d' str, la taille d' str est utilisée au lieu d' count.Une erreur se produit si count est supérieur numberOfElements et ces deux paramètres sont supérieure à la taille d' str.
_wcsnset_s et _mbsnset_ssont à caractères larges et des versions à caractères multioctets d' _strnset_s.L'argument de chaîne d' _wcsnset_s est une chaîne à caractères larges ; ce d' _mbsnset_s est une chaîne de caractères multioctets d'.Ces trois fonctions se comportent de sinon.
La valeur de sortie est affectée par la configuration de la définition de catégorie d' LC_CTYPEdes paramètres régionaux ; consultez l' setlocale pour plus d'informations.Les versions de ces fonctions sans suffixe d' _l utilisent les paramètres régionaux définis pour ce comportement dépendant des paramètres régionaux ; les versions avec le suffixe d'_l sont identiques sauf qu'elles utilisent le paramètre de paramètres régionaux passé à la place.Pour plus d'informations, consultez Paramètres régionaux.
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 |
---|---|
_strnset_s |
<string.h> |
_strnset_s_l |
<tchar.h> |
_wcsnset_s |
<string.h> ou <wchar.h> |
_wcsnset_s_l |
<tchar.h> |
_mbsnset_s, _mbsnset_s_l |
<mbstring.h> |
Pour des informations de compatibilité supplémentaires, consultez l' Compatibilité dans l'introduction.
Exemple
// crt_strnset_s.c
#include <string.h>
#include <stdio.h>
int main( void )
{
char string[15] = "This is a test";
/* Set not more than 4 characters of string to be *'s */
printf( "Before: %s\n", string );
_strnset_s( string, sizeof(string), '*', 4 );
printf( "After: %s\n", string );
}