C/C++ 数字转化为字符串函数

来源:互联网 发布:《梦里花落知多少》txt 编辑:程序博客网 时间:2024/05/14 17:52

----------------int型整数转换为字符串的函数:

char *_itoa( int value, char *string, intradix );

第一个参数:要输入的int整数

第二个参数:转换后的字符串

第三个参数:转换时按照radix进制进行转换。即转换为该数的radix进制后再转换为字符串

返回值:返回转换后字符串的首地址

------------------long型整数转换为字符串的函数:

char *_ltoa( long value, char *string, int radix );

第一个参数:要输入的long整数

第二个参数:转换后的字符串

第三个参数:转换时按照radix进制进行转换。即转换为该数的radix进制后再转换为字符串

返回值:返回转换后字符串的首地址

示例:

#include<iostream>using namespace std;int main(){long a=12345678;char s[25];_ltoa(a,s,10);cout<<s<<endl;return 0;}

-----------双精度浮点型(double)数转换为字符串,且字符串中包含小数点。此时的函数为:

char *_gcvt( double value,int digits,char *buffer );

第一个参数:要输入的双精度浮点数。

第二个参数:除小数点外所有数字的数目(即整数部分数字的数量+小数部分数字的数量,即是一共有几个数,例如:1132.253  ,此时第二个参数的值为:7)

第三个参数:用来存储转换后字符串的首地址的指针。也可以理解为转换后的字符串。

示例如下:

#include<iostream>using namespace std;int main(){long a=13;char s[100];_gcvt(100.012,6,s);cout<<s;return 0;}
这个程序的输出结果是:100.012.

注意:此时输出的并不是一个双精度数,而是一个字符串!


-----------双精度浮点型(double)数转换为字符串,但是字符串中不包含小数点。此时的函数为:

char *_fcvt( double value, int count, int *dec, int *sign );
第一个参数:要输入的双精度浮点数
第二个参数:小数点后面的数字的数目
第三个参数:存储小数点位置的指针
第四个参数:存储标志位的指针。如果双精度数为正值,则该指针所指向的值为0,否则为-1
返回值:该函数的返回值为转换后的字符串的首地址。
示例:
#include<iostream>using namespace std;int main(){double a=13.62832;char*s;int dig;int sign;s=_fcvt(a,5,&dig,&sign);cout<<s<<" "<<dig<<" "<<sign;return 0;}
输出结果:1362832 2 0
其中 dig存储的是小数点的位置。例如13.62832.则小数点在第二位,所以dig=2;


0 0