最近在工作中遇到一个要把整数和字符串拼接成一个字符串显示的问题。于是上网找了下资料,记录一下。
以下是抄的:
++++++++++++++++++++++++++++++++++++++++++++++
十进制数转化为相应十六进制数字符串的办法
第一种是使用itoa函数
函数原型如下
char * itoa ( int value, char * str, int base );
value是要转化的数字,str是转化后的字符串存储的位置,base是进制数
一个小的示例程序
int main ()
{
int i;
char buffer [33];
printf ( "Enter a number: " );
scanf ( "%d" ,&i);
itoa (i,buffer,10);
printf ( "decimal: %s/n" ,buffer);
itoa (i,buffer,16);
printf ( "hexadecimal: %s/n" ,buffer);
itoa (i,buffer,2);
printf ( "binary: %s/n" ,buffer);
return 0;
}
但是这个函数不是标准C函数,只被一些C++的编译器支持。在Linux中也不能使用。
另外一种方法
- sprintf (str,"%d",value) converts to decimal base.
- sprintf (str,"%x",value) converts to hexadecimal base.
- sprintf (str,"%o",value) converts to octal base.
str是转化存储的位置,value是要转化的数字。上面三个函数分别是10进制,16进制和8进制的转化。
这种方法比较好,可以在Linux下使用。
+++++++++++++++++++++++++++++++++++++++++++++++++
如果对 sprintf 这个函数还有问题的话,可以再baidu或者google一下。。。