有vc里,数据类型转换有atoi,itoa,在linux中,没有这些函数,但能sprintf能实现数据转换!
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int main()
{
char buffer[20];
int i=3455;
long l=-343115L;
unsigned long ul=123456789UL;
// *itostr(i);
sprintf(buffer,"%x",i);
printf("%s",buffer);
return 0;
}
% |
印出百分比符号,不转换。 |
b |
整数转成二进位。 |
c |
整数转成对应的 ASCII 字符。 |
d |
整数转成十进位。 |
f |
倍精确度数字转成浮点数。 |
o |
整数转成八进位。 |
s |
整数转成字符串。 |
x |
整数转成小写十六进位。 |
X |
整数转成大写十六进位。 |
注间:sprintf的作用是将一个格式化的字符串输出到一个目的字符串中,而printf是将一个格式化的字符串输出到屏幕。sprintf的第一个参数应该是目的字符串,如果不指定这个参数,执行过程中出现 "该程序产生非法操作,即将被关闭...."的提示。
因为C语言在进行字符串操作时不检查字符串的空间是否够大,所以可能会出现数组越界而导致程序崩溃的问题。即使碰巧,程序没有出错,也不要这么用,因为早晚会出错。所以一定要在调用sprintf之前分配足够大的空间给buf。
很方便实现把long 转为 char
阅读(5641) | 评论(1) | 转发(0) |