Condividi tramite


_itoa_s, _i64toa_s, _ui64toa_s, _itow_s, _i64tow_s, _ui64tow_s

Converte un Integer in una stringa.queste sono versioni di _itoa, _i64toa, _ui64toa, _itow, _i64tow, _ui64tow con i miglioramenti della sicurezza come descritto in Funzionalità di sicurezza in 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

Parametri

  • [in] value
    Numero da convertire.

  • [out] buffer
    Riempito con un risultato della conversione.

  • [in] sizeInCharacters
    Dimensione del buffer i caratteri a byte singolo o i caratteri di tipo " wide ".

  • [in] radix
    Base value; quale deve essere compreso 2-36.

Valore restituito

Zero in caso di esito positivo; un codice di errore in caso di errore.Se una qualsiasi delle condizioni seguenti è applicato, la funzione viene richiamato un gestore non valido di parametro, come descritto in Convalida dei parametri.

condizioni di errore

valore

buffer

sizeInCharacters

base

Return

qualsiasi

NULL

qualsiasi

qualsiasi

EINVAL

qualsiasi

qualsiasi

<=0

qualsiasi

EINVAL

qualsiasi

qualsiasi

Lunghezza di <= della stringa di risultato richiesta

qualsiasi

EINVAL

qualsiasi

qualsiasi

qualsiasi

radix < 2 o radix > 36

EINVAL

problemi di sicurezza

Tali funzioni possono generare una violazione di accesso se buffer non indica la memoria valida e non viene NULL, o se la lunghezza del buffer non è sufficientemente lungo di utilizzare la stringa di risultato.

Note

Ad eccezione dei parametri e il valore restituito, _itoa_s le funzioni presentano lo stesso comportamento della corrispondenza versioni meno sicure.

In C++, utilizzando queste funzioni è semplificato dagli overload del modello; gli overload possono dedurre la lunghezza del buffer automaticamente (che elimina la necessità di specificare un argomento di dimensione) e possono sostituire automaticamente le funzioni precedenti e non sicure con le più recenti, controparti sicure.Per ulteriori informazioni, vedere Assicurarsi che gli overload del modello.

Le versioni di debug di queste funzioni innanzitutto soddisfano il buffer del valore 0xFD.Per disabilitare questo comportamento, utilizzare _CrtSetDebugFillThreshold.

Mapping di routine a testo generico

routine di Tchar.h

_UNICODE e _MBCS non definiti

_MBCS definito

_UNICODE definito

_itot_s

_itoa_s

_itoa_s

_itow_s

_i64tot_s

_i64toa_s

_i64toa_s

_i64tow_s

_ui64tot_s

_ui64toa_s

_ui64toa_s

_ui64tow_s

Requisiti

routine

Intestazione di associazione

_itoa_s

<definito>

_i64toa_s

<definito>

_ui64toa_s

<definito>

_itow_s

<definito> o <wchar.h>

_i64tow_s

<definito> o <wchar.h>

_ui64tow_s

<definito> o <wchar.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'introduzione.

Esempio

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

Output

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)

Equivalente .NET Framework

System:: Conversione:: ToString

Vedere anche

Riferimenti

Conversione di dati

_ltoa, _ltow

_ultoa, _ultow