在线时间954 小时
UID336767
注册时间2011-12-29
NXP金币809
TA的每日心情 | 开心 2018-7-23 21:04 |
---|
签到天数: 103 天 连续签到: 1 天 [LV.6]常住居民II
金牌会员
 
- 积分
- 16790
- 最后登录
- 1970-1-1
|
今天给大家分享一个我遇到的数制转换转换的问题。
一、问题描述:
遇到一个问题,比如有个数据321,想把它转换成十六进制的字符串即“141”。
原来遇到这个问题都是用itoa函数来实现的,这个函数可以非常方便的将任意数字转换成字符串,可以是2、8、10、16进制。
但是在使用KDS3.0时,发现在stdlib.h库中的没有这个函数。
原因是itoa是广泛应用的非标准C语言扩展函数。由于它不是标准C语言函数,所以不能在所有的编译器中使用。
但又不想自己写程序来实现,有什么方法呢?
二、解决办法:
后来发现,使用sprintf函数十分方便,而且比itoa的功能更强大。
1、sprintf函数功能 :把格式化的数据写入某个字符串缓冲区。
原型 :int sprintf( char *buffer, const char *format, [ argument] … );
参数:
(1)buffer:char型指针,指向将要写入的字符串的缓冲区。
(2)format:格式化字符串。
(3)[argument]...:可选参数,可以是任何类型的数据。
返回值 :字符串长度(strlen)
2、来看一个使用的方法:
输出结果
可以看到,满足要求。
三、感想与收获:
1、在很多情况下,库函数给大家提供了很多有用的常用函数。
|
|