各种数转换成字符串

来源:互联网 发布:ai软件好学吗 编辑:程序博客网 时间:2024/06/07 04:01
关键字:
float转化成字符串
double转化成字符串
int 转化成字符串


貌似不少人都不清楚这个问题。。。。今天去百度知道里逛,发觉有个人问怎么把浮点数转化成字符串,居然4个人的回答都不对。。。。。

为了避免杯具继续,在这里说明一下可行的方案吧。。。


一个是printf的字符串版本。本来printf是格式化打印,不过许多人都不明白“格式化”具体是什么意思- -


anyway,我们需要的函数就是sprintf函数。

例如:
#include<stdio.h>
int main()
{
char str[100];
double f=1.2f;
sprintf(str,"%lf",f);
printf(str);
return 0;
}
如同上面这样,这个sprintf和printf有一个差别,就是它多出了放在第一个位置的参数,它是一个数组指针,用来存储转化成的字符串。

对于浮点数,我印象中是没有直接转化成字符串的函数,只有利用万能的sprintf才能做到,呵呵。

不过,如果想把int型转化成字符串,倒是有一个itoa函数,它要求三个参数,第一个是一个int型变量,第二个是存放结果的数组指针,第三个是进制,一般就是十进制了所以常常用10做第三个参数。
例如把256按十进制转化就是itoa(256,str,10);

itoa固然很有趣,毕竟如果想把数字按2进制显示出来,用这个还挺方便的。

不过,itoa在windows下的编译器里一般能用,但是因为它不是一个标准库函数,所以在交叉编译的平台之类的情况下(或者你根本不用PC?)有可能用不了itoa了。

所以,考虑到sprintf其实更好用,所以即使是十进制整数转化成字符串,一般情况下用sprintf或更安全的snprintf就可以了。
原创粉丝点击