_itoa_s, _i64toa_s, _ui64toa_s, _itow_s, _i64tow_s, _ui64tow_s_itoa_s, _i64toa_s, _ui64toa_s, _itow_s, _i64tow_s, _ui64tow_s

Converte un intero in una stringa.Converts an integer to a string. Queste sono versioni di _itoa, _i64toa, _ui64toa, _itow, _i64tow, _ui64tow con miglioramenti per la sicurezza, come descritto in Funzionalità di sicurezza in CRT.These are versions of _itoa, _i64toa, _ui64toa, _itow, _i64tow, _ui64tow with security enhancements as described in Security Features in the CRT.

SintassiSyntax

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  

ParametriParameters

[in] value[in] value
Numero da convertire.Number to be converted.

[out] buffer[out] buffer
Riempito con il risultato della conversione.Filled with the result of the conversion.

[in] sizeInCharacters[in] sizeInCharacters
La dimensione del buffer in caratteri a byte singolo o wide.Size of the buffer in single-byte characters or wide characters.

[in] radix[in] radix
Base di value; che deve essere compreso nell'intervallo 2-36.Base of value; which must be in the range 2-36.

Valore restituitoReturn Value

Zero se con esito positivo; un codice di errore in caso di errore.Zero if successful; an error code on failure. Se si applica una qualsiasi delle condizioni seguenti, la funzione richiama un gestore di parametri non validi, come descritto in Convalida dei parametri.If any of the following conditions applies, the function invokes an invalid parameter handler, as described in Parameter Validation.

Condizioni di erroreError Conditions

predefinitovalue bufferbuffer sizeInCharacterssizeInCharacters radixradix INVIOReturn
qualsiasiany NULL qualsiasiany qualsiasiany EINVAL
qualsiasiany qualsiasiany <=0<=0 qualsiasiany EINVAL
qualsiasiany qualsiasiany <= lunghezza della stringa di risultato richiesta<= length of the result string required qualsiasiany EINVAL
qualsiasiany qualsiasiany qualsiasiany radix < 2 o radix > 36radix < 2 or radix > 36 EINVAL

Problemi relativi alla sicurezzaSecurity Issues

Queste funzioni possono generare una violazione di accesso se buffer non punta alla memoria valida e non è NULL, oppure se la lunghezza del buffer non è sufficiente per contenere la stringa di risultato.These functions can generate an access violation if buffer does not point to valid memory and is not NULL, or if the length of the buffer is not long enough to hold the result string.

NoteRemarks

Ad eccezione dei parametri e del valore restituito, le funzioni _itoa_s hanno lo stesso comportamento delle versioni meno sicure corrispondenti.Except for the parameters and return value, the _itoa_s functions have the same behavior as the corresponding less secure versions.

In C++ l'utilizzo di queste funzioni è semplificato dagli overload dei modelli. Gli overload possono dedurre la lunghezza del buffer automaticamente (eliminando la necessità di specificare un argomento di dimensione) e possono sostituire automaticamente le funzioni precedenti e non sicure con le controparti più recenti e sicure.In C++, using these functions is simplified by template overloads; the overloads can infer buffer length automatically (eliminating the need to specify a size argument) and they can automatically replace older, non-secure functions with their newer, secure counterparts. Per altre informazioni, vedere Secure Template Overloads.For more information, see Secure Template Overloads.

Le versioni di debug di queste funzioni riempiono innanzitutto il buffer con 0xFD.The debug versions of these functions first fill the buffer with 0xFD. Per disabilitare questo comportamento, usare _CrtSetDebugFillThreshold.To disable this behavior, use _CrtSetDebugFillThreshold.

Mapping di routine di testo genericoGeneric-Text Routine Mappings

Routine Tchar.hTchar.h routine _UNICODE e _MBCS non definiti_UNICODE and _MBCS not defined _MBCS definito_MBCS defined _UNICODE definito_UNICODE defined
_itot_s _itoa_s _itoa_s _itow_s
_i64tot_s _i64toa_s _i64toa_s _i64tow_s
_ui64tot_s _ui64toa_s _ui64toa_s _ui64tow_s

RequisitiRequirements

RoutineRoutine Intestazione obbligatoriaRequired header
_itoa_s <stdlib.h><stdlib.h>
_i64toa_s <stdlib.h><stdlib.h>
_ui64toa_s <stdlib.h><stdlib.h>
_itow_s <stdlib.h> or <wchar.h><stdlib.h> or <wchar.h>
_i64tow_s <stdlib.h> or <wchar.h><stdlib.h> or <wchar.h>
_ui64tow_s <stdlib.h> or <wchar.h><stdlib.h> or <wchar.h>

Per altre informazioni sulla compatibilità, vedere la sezione Compatibilità nell'introduzione.For more compatibility information, see Compatibility in the Introduction.

EsempioExample

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

OutputOutput

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)  

Vedere ancheSee Also

Data Conversion (Conversione dei dati)Data Conversion
_ltoa, _ltow _ltoa, _ltow
_ultoa, _ultow_ultoa, _ultow