_itoa、_i64toa、_ui64toa、_itow、_i64tow、_ui64tow
將一個整數轉換為字串。 更多這些函式的可用安全版本,請參閱 _itoa_s、_i64toa_s、_ui64toa_s、_itow_s、_i64tow_s、_ui64tow_s。
char *_itoa(
int value,
char *str,
int radix
);
char *_i64toa(
__int64 value,
char *str,
int radix
);
char * _ui64toa(
unsigned _int64 value,
char *str,
int radix
);
wchar_t * _itow(
int value,
wchar_t *str,
int radix
);
wchar_t * _i64tow(
__int64 value,
wchar_t *str,
int radix
);
wchar_t * _ui64tow(
unsigned __int64 value,
wchar_t *str,
int radix
);
template <size_t size>
char *_itoa(
int value,
char (&str)[size],
int radix
); // C++ only
template <size_t size>
char *_i64toa(
__int64 value,
char (&str)[size],
int radix
); // C++ only
template <size_t size>
char * _ui64toa(
unsigned _int64 value,
char (&str)[size],
int radix
); // C++ only
template <size_t size>
wchar_t * _itow(
int value,
wchar_t (&str)[size],
int radix
); // C++ only
template <size_t size>
wchar_t * _i64tow(
__int64 value,
wchar_t (&str)[size],
int radix
); // C++ only
template <size_t size>
wchar_t * _ui64tow(
unsigned __int64 value,
wchar_t (&str)[size],
int radix
); // C++ only
參數
value
被轉換的數字。str
字串的結果。radix
value的基底必須介於 2-36之間。
傳回值
這些函式都會傳回一個 str的指標。 不會回傳錯誤。
備註
_itoa、 _i64toa和 _ui64toa 的函式轉換這些二進位數字,這些數字被賦予 value 至為 null 結尾字元的字串,並在 str 儲存結果 ( _itoa 有33個字元 ,_i64toa 和 _ui64toa則有65個字元) 。 如果 radix 等於 10,而且 value 是負數,儲存的字串的第一個字元為負號( – )。 _itow、 _i64tow和 _ui64tow 分別為 _itoa、 _i64toa和 _ui64toa的寬字元版本。
安全性提示 |
---|
若要防止緩衝區滿溢,請確定 str 緩衝區有足夠空間去儲存轉換位元和多出來的 null 字元以及一個正負號字元。 |
在 C++ 中,這些函式具有多載樣板,可以叫用更新、更安全的這些函式的相對版本。 如需詳細資訊,請參閱安全範本多載。
一般文字常式對應
Tchar.h 常式 |
未定義 _UNICODE and _MBCS |
已定義 _MBCS |
已定義 _UNICODE |
---|---|---|---|
_itot |
_itoa |
_itoa |
_itow |
_i64tot |
_i64toa |
_i64toa |
_i64tow |
_ui64tot |
_ui64toa |
_ui64toa |
_ui64tow |
需求
常式 |
必要的標頭 |
---|---|
_itoa |
<stdlib.h> |
_i64toa |
<stdlib.h> |
_ui64toa |
<stdlib.h> |
_itow |
<stdlib.h> |
_i64tow |
<stdlib.h> |
_ui64tow |
<stdlib.h> |
如需更多關於相容性的資訊,請參閱入門介紹中的 相容性 (Compatibility) 。
範例
// crt_itoa.c
// compile with: /W3
// This program makes use of the _itoa functions
// in various examples.
#include <string.h>
#include <stdlib.h>
int main( void )
{
char buffer[65];
int r;
for( r=10; r>=2; --r )
{
_itoa( -1, buffer, r ); // C4996
// Note: _itoa is deprecated; consider using _itoa_s instead
printf( "base %d: %s (%d chars)\n", r, buffer, strnlen(buffer, _countof(buffer)) );
}
printf( "\n" );
for( r=10; r>=2; --r )
{
_i64toa( -1L, buffer, r ); // C4996
// Note: _i64toa is deprecated; consider using _i64toa_s
printf( "base %d: %s (%d chars)\n", r, buffer, strnlen(buffer, _countof(buffer)) );
}
printf( "\n" );
for( r=10; r>=2; --r )
{
_ui64toa( 0xffffffffffffffffL, buffer, r ); // C4996
// Note: _ui64toa is deprecated; consider using _ui64toa_s
printf( "base %d: %s (%d chars)\n", r, buffer, strnlen(buffer, _countof(buffer)) );
}
}