Chinaunix首页 | 论坛 | 博客
  • 博客访问: 330868
  • 博文数量: 67
  • 博客积分: 2485
  • 博客等级: 大尉
  • 技术积分: 665
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-20 17:29
文章分类

全部博文(67)

文章存档

2016年(3)

2013年(5)

2012年(3)

2011年(5)

2010年(35)

2009年(16)

我的朋友

分类: C/C++

2010-01-07 17:40:03

有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
阅读(5602) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-05-26 10:23:22

关于long的没测试吧,这样可不行 “很方便实现把long 转为 char”代码里面却用的是int,long使用的ld也没有列出