❶ C++中itoa怎麼用
itoa是把整形數轉換成字元型,也有atoi的,這是把字元型轉換成整型,不過要注意幾個問題 TCHAR str[100]; //假設str為「1000」 int num = atoi(str); TCHAR str1[100]; //假設str1為「2」
int d = atoi(str); itoa(d_num, r_num, d); //這個itoa可以用來進制轉換,很方便!!!把d_num轉換在d進制的r_num
❷ itoa函數在<stdlib.h>頭文件里找不到怎麼辦
沒有的話就要自己寫.
在嵌入式系統中,flash空間有限,有時候不裝入不怎麼經常用的庫函數,需要的時候就自己寫. 嵌入式系統是沒那麼多空間用來浪費的.
你可以用sprintf函數
比如:
#include <stdio.h>
#include <memory.h>
void main()
{
char tmp[30];
//init
memset(tmp, 0x00, 30);
sprintf(tmp, "%d", 34);//此時就把數字34轉成字元串34了
}
以上代碼VC6調試通過.
❸ 請問C語言中的"itoa"的頭文件是什麼哪位高手幫一下忙.謝謝!
是把整型轉化成字元的函數,我怎麼學的時候老師沒說過捏,汗。。。
❹ c語言中,函數itoa有什麼功能,怎麼用
itoa是廣泛應用的非標准C語言擴展函數。由於它不是標准C語言函數,所以不能在所有的編譯器中使
用。但是,大多數的編譯器(如Windows上的)通常在<stdlib.h>頭文件中包含這個函數。在<stdlib.h>中與之有相反功能的函數是atoi。功能:把一整數轉換為字元串。
用法
char
*itoa(int
value,
char
*string,
int
radix);
頭文件:
<stdlib.h>
程序例:
#include
<stdlib.h>
#include
<stdio.h>
int
main()
{
int
number
=
123456;
char
string[25];
itoa(number,
string,
10);
printf("integer
=
%d
string
=
%s\n",
number,
string);
return
0;
}
/*
實現itoa函數的源代碼
*/
char
*myitoa(int
num,char
*str,int
radix)
{
/*
索引表
*/
char
index[]="";
unsigned
unum;
/*
中間變數
*
int
i=0,j,k;
/*
確定unum的值
*/
if(radix==10&&num<0)
/*
十進制負數
*/
{
unum=(unsigned)-num;
str[i++]='-';
}
else
unum=(unsigned)num;
/*
其他情況
*/
/*
逆序
*/
do
{
str[i++]=index[unum%(unsigned)radix];
unum/=radix;
}while(unum);
str[i]='\0';
/*
轉換
*/
if(str[0]=='-')
k=1;
/*
十進制負數
*/
else
k=0;
/*
將原來的「/2」改為「/2.0」,保證當num在16~255之間,radix等於16時,也能得到正確結果
*/
for(j=k;j<=(i-1)/2.0+k;j++)
{
num=str[j];
str[j]=str[i-j-1+k];
str[i-j-1+k]=num;
}
return
str;
}
itoa的第三個參數用於將數字轉換成不同的進制。舉個例子:
#include
<stdlib.h>
#include
<stdio.h>
int
main(void)
{
int
number
=
12345;
char
string[25];
itoa(number,
string,
10);
//按十進制轉換
printf("integer
=
%d
string
=
%s\n",
number,
string);
itoa(number,
string,
16);
//按16進制轉換
printf("integer
=
%d
string
=
%s\n",
number,
string);
return
0;
}
輸出結果:
integer
=
12345
string
=
12345
--說明12345的十進製表示就是12345
integer
=
12345
string
=
3039
——說明12345的十六進製表示是0x3039
但是要注意,itoa並不是一個標準的C函數,它是Windows特有的,如果要寫跨平台的程序,請用sprintf。
用幾進製表示吧:)
MSDN的例子
Example
/*
ITOA.C:
This
program
converts
integers
of
various
*
sizes
to
strings
in
various
radixes.
*/
#include
<stdlib.h>
#include
<stdio.h>
void
main(
void
)
{
char
buffer[20];
int
i
=
3445;
long
l
=
-344115L;
unsigned
long
ul
=
1234567890UL;
_itoa(
i,
buffer,
10
);
printf(
"String
of
integer
%d
(radix
10):
%s\n",
i,
buffer
);
_itoa(
i,
buffer,
16
);
printf(
"String
of
integer
%d
(radix
16):
0x%s\n",
i,
buffer
);
_itoa(
i,
buffer,
2
);
printf(
"String
of
integer
%d
(radix
2):
%s\n",
i,
buffer
);
_ltoa(
l,
buffer,
16
);
printf(
"String
of
long
int
%ld
(radix
16):
0x%s\n",
l,
buffer
);
_ultoa(
ul,
buffer,
16
);
printf(
"String
of
unsigned
long
%lu
(radix
16):
0x%s\n",
ul,
buffer
);
}
Output
String
of
integer
3445
(radix
10):
3445
String
of
integer
3445
(radix
16):
0xd75
String
of
integer
3445
(radix
2):
110101110101
String
of
long
int
-344115
(radix
16):
0xfffabfcd
String
of
unsigned
long
1234567890
(radix
16):
0x499602d2
指定要轉換的進制的基數,其值好象在1--36之間都可以
這個不是C標准庫中的函數,而是Windows平台下擴展的,標准庫中有sprintf,功能比這個更強,用法跟printf類似:
char
str[255];
sprintf(str,
"%x",
100);
//將100轉為16進製表示的字元串。