Chinaunix首页 | 论坛 | 博客
  • 博客访问: 32750
  • 博文数量: 9
  • 博客积分: 370
  • 博客等级: 一等列兵
  • 技术积分: 90
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-31 14:48
文章分类

全部博文(9)

文章存档

2011年(9)

我的朋友

分类: C/C++

2011-03-25 09:43:43

    在实际应用中我们可能有这样的需求,需要将相应的数字转换成相应的字符串。我们知道在windows系统中有这样一组函数。
    itoa() 将整型值转换为字符串
    itoa() 将长整型值转换为字符串
    ultoa() 将无符号长整型值转换为字符串
以itoa()为例,该函数有3个参数:第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移数字时所用的基数。在上例中,转换基数为10。10:十进制;2:二进制...  itoa并不是一个标准的C函数,它是Windows特有的,如果要写跨平台的程序,请用sprintf。
    char str[255];   
    sprintf(str, "%x", 100); //将100转为16进制表示的字符串 
 
    在linux中编程时也许我们还可以选择用宏来实现,这样我们可以感受到宏的魅力。注意:下面的宏必须转一下,否则不会达到我们所希望的效果。你实践一下就知道了。
    #define _STR(s)     #s
    #define STR(s)      _STR(s)          // 转换宏
    #define _CONS(a,b)  int(a##e##b)
    #define CONS(a,b)   _CONS(a,b)       // 转换宏
 
   printf("int max: %s\n", STR(INT_MAX)); //INT_MAX,int型的最大值,为一个变量#include
   输出为: int max: 0x7fffffff
   STR(INT_MAX) -->  _STR(0x7fffffff) 然后再转换成字符串。上面提到的宏中应用##时也是这样用。这里就不再赘述了。
阅读(526) | 评论(0) | 转发(0) |
0

上一篇:局部变量,全局变量,静态变量

下一篇:没有了

给主人留下些什么吧!~~