_itoa_s, _i64toa_s, _ui64toa_s, _itow_s, _i64tow_s, _ui64tow_s
Convertit un entier en une chaîne.Ce sont des versions de _itoa, _i64toa, _ui64toa, _itow, _i64tow, _ui64tow avec des améliorations de sécurité comme décrit dans Fonctionnalités de sécurité du CRT.
errno_t _itoa_s(
int value,
char *buffer,
size_t sizeInCharacters,
int radix
);
errno_t _i64toa_s(
__int64 value,
char *buffer,
size_t sizeInCharacters,
int radix
);
errno_t _ui64toa_s(
unsigned _int64 value,
char *buffer,
size_t sizeInCharacters,
int radix
);
errno_t _itow_s(
int value,
wchar_t *buffer,
size_t sizeInCharacters,
int radix
);
errno_t _i64tow_s(
__int64 value,
wchar_t *buffer,
size_t sizeInCharacters,
int radix
);
errno_t _ui64tow_s(
unsigned __int64 value,
wchar_t *buffer,
size_t sizeInCharacters,
int radix
);
template <size_t size>
errno_t _itoa_s(
int value,
char (&buffer)[size],
int radix
); // C++ only
template <size_t size>
errno_t _itow_s(
int value,
wchar_t (&buffer)[size],
int radix
); // C++ only
Paramètres
[in] value
Nombre à convertir.[out] buffer
rempli avec le résultat de la conversion.[in] sizeInCharacters
Taille de la mémoire tampon caractères codés sur un octet ou caractères larges.[in] radix
base d' value; ce qui doit être comprise entre 2-36.
Valeur de retour
Zéro si l'opération a réussi ; code d'erreur en cas de échec.Si l'une des conditions suivantes s'applique, la fonction appelle un gestionnaire de paramètre non valide, comme décrit dans Validation des paramètres.
conditions d'erreur
value |
mémoire tampon |
sizeInCharacters |
base |
Return |
---|---|---|---|---|
quels |
NULL |
quels |
quels |
EINVAL |
quels |
quels |
<=0 |
quels |
EINVAL |
quels |
quels |
longueur d'<= de la chaîne de résultat requise |
quels |
EINVAL |
quels |
quels |
quels |
radix < 2 ou radix > 36 |
EINVAL |
problèmes de sécurité
Ces fonctions peuvent générer une violation d'accès si buffer n'indique pas une mémoire non valide et n'est pas NULL, ou si la longueur de la mémoire tampon n'est pas assez longtemps pour stocker la chaîne de résultat.
Notes
À l'exception de les paramètres et la valeur de retour, les fonctions d' _itoa_s ont le même comportement que correspondre les versions moins sécurisé.
En C++, à l'aide de ces fonctions est simplifié 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) et peuvent remplacer automatiquement des fonctions plus anciennes et non sécurisées par leurs nouvelles, sécurisées équivalents.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 avec 0xFD.Pour désactiver ce comportement, utilisez _CrtSetDebugFillThreshold.
mappages de routines de texte générique
routine de Tchar.h |
_UNICODE et _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_itot_s |
_itoa_s |
_itoa_s |
_itow_s |
_i64tot_s |
_i64toa_s |
_i64toa_s |
_i64tow_s |
_ui64tot_s |
_ui64toa_s |
_ui64toa_s |
_ui64tow_s |
Configuration requise
routine |
en-tête requis |
---|---|
_itoa_s |
<stdlib.h> |
_i64toa_s |
<stdlib.h> |
_ui64toa_s |
<stdlib.h> |
_itow_s |
<stdlib.h> ou <wchar.h> |
_i64tow_s |
<stdlib.h> ou <wchar.h> |
_ui64tow_s |
<stdlib.h> ou <wchar.h> |
Pour plus d'informations de compatibilité, consultez Compatibilité dans l'introduction.
Exemple
// crt_itoa_s.c
#include <stdlib.h>
#include <string.h>
int main( void )
{
char buffer[65];
int r;
for( r=10; r>=2; --r )
{
_itoa_s( -1, buffer, 65, r );
printf( "base %d: %s (%d chars)\n", r, buffer, strnlen(buffer, _countof(buffer)) );
}
printf( "\n" );
for( r=10; r>=2; --r )
{
_i64toa_s( -1L, buffer, 65, r );
printf( "base %d: %s (%d chars)\n", r, buffer, strnlen(buffer, _countof(buffer)) );
}
printf( "\n" );
for( r=10; r>=2; --r )
{
_ui64toa_s( 0xffffffffffffffffL, buffer, 65, r );
printf( "base %d: %s (%d chars)\n", r, buffer, strnlen(buffer, _countof(buffer)) );
}
}
Sortie
base 10: -1 (2 chars)
base 9: 12068657453 (11 chars)
base 8: 37777777777 (11 chars)
base 7: 211301422353 (12 chars)
base 6: 1550104015503 (13 chars)
base 5: 32244002423140 (14 chars)
base 4: 3333333333333333 (16 chars)
base 3: 102002022201221111210 (21 chars)
base 2: 11111111111111111111111111111111 (32 chars)
base 10: -1 (2 chars)
base 9: 145808576354216723756 (21 chars)
base 8: 1777777777777777777777 (22 chars)
base 7: 45012021522523134134601 (23 chars)
base 6: 3520522010102100444244423 (25 chars)
base 5: 2214220303114400424121122430 (28 chars)
base 4: 33333333333333333333333333333333 (32 chars)
base 3: 11112220022122120101211020120210210211220 (41 chars)
base 2: 1111111111111111111111111111111111111111111111111111111111111111 (64 chars)
base 10: 18446744073709551615 (20 chars)
base 9: 145808576354216723756 (21 chars)
base 8: 1777777777777777777777 (22 chars)
base 7: 45012021522523134134601 (23 chars)
base 6: 3520522010102100444244423 (25 chars)
base 5: 2214220303114400424121122430 (28 chars)
base 4: 33333333333333333333333333333333 (32 chars)
base 3: 11112220022122120101211020120210210211220 (41 chars)
base 2: 1111111111111111111111111111111111111111111111111111111111111111 (64 chars)
Équivalent .NET Framework
System : : Conversion : : ToString