_itoa, _i64toa, _ui64toa, _itow, _i64tow, _ui64tow
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer

_itoa, _i64toa, _ui64toa, _itow, _i64tow, _ui64tow

Convert an integer to a string.

char *_itoa(
   int value,
   char *string,
   int radix 
);
char *_i64toa(
   __int64 value,
   char *string,
   int radix 
);
char * _ui64toa(
   unsigned _int64 value,
   char *string,
   int radix 
);
wchar_t * _itow(
   int value,
   wchar_t *string,
   int radix 
);
wchar_t * _i64tow(
   __int64 value,
   wchar_t *string,
   int radix 
);
wchar_t * _ui64tow(
   unsigned __int64 value,
   wchar_t *string,
   int radix 
);

Parameters

value
Number to be converted.
string
String result.
radix
Base of value; must be in the range 2 – 36.

Return Value

Each of these functions returns a pointer to string. There is no error return.

Remarks

The _itoa, _i64toa, and _ui64toa function convert the digits of the given value argument to a null-terminated character string and stores the result (up to 33 characters for _itoa, 65 for _i64toa and _ui64toa) in string. If radix equals 10 and value is negative, the first character of the stored string is the minus sign ( – ). _itow, _i64tow, and _ui64tow are wide-character versions of _itoa, _i64toa, and _ui64toa respectively.

Security Note   To prevent buffer overruns, ensure that the string buffer is large enough to hold the converted digits plus the trailing null-character and a sign character.

Generic-Text Routine Mappings

TCHAR.H routine _UNICODE & _MBCS not defined _MBCS defined _UNICODE defined
_itot _itoa _itoa _itow
_i64tot _i64toa _i64toa _i64tow
_ui64tot _ui64toa _ui64toa _ui64tow

Requirements

Routine Required header Compatibility
_itoa <stdlib.h> Win 98, Win Me, Win NT, Win 2000, Win XP
_i64toa <stdlib.h> Win 98, Win Me, Win NT, Win 2000, Win XP
_ui64toa <stdlib.h> Win 98, Win Me, Win NT, Win 2000, Win XP
_itow <stdlib.h> Win 98, Win Me, Win NT, Win 2000, Win XP
_i64tow <stdlib.h> Win 98, Win Me, Win NT, Win 2000, Win XP
_ui64tow <stdlib.h> Win 98, Win Me, Win NT, Win 2000, Win XP

For additional compatibility information, see Compatibility in the Introduction.

Libraries

All versions of the C run-time libraries.

Example

// crt_itoa.c
#include <stdlib.h>

int main( void )
{
   char buffer[65];
   int r;
   for( r=10; r>=2; --r )
   {
     _itoa( -1, buffer, r );
     printf( "base %d: %s (%d chars)\n", r, buffer, strlen(buffer) );
   }
   printf( "\n" );
   for( r=10; r>=2; --r )
   {
     _i64toa( -1L, buffer, r );
     printf( "base %d: %s (%d chars)\n", r, buffer, strlen(buffer) );
   }
   printf( "\n" );
   for( r=10; r>=2; --r )
   {
     _ui64toa( 0xffffffffffffffffL, buffer, r );
     printf( "base %d: %s (%d chars)\n", r, buffer, strlen(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)

See Also

Data Conversion Routines | _ltoa | _ultoa | Run-Time Routines and .NET Framework Equivalents

Show:
© 2016 Microsoft