有关int,float,double型与字符串char*类型的相互转换

    atoi、atof、itoa、itow函数是windows平台下实现字符串与数值相互转换的函数;

    下面看下这几个函数的声明:

    1,atoi

      原型:

  int atoi ( const char * str );

      作用:将字符串转为int型;

     2,atof

     原型:

     double atof ( const char * str );

     作用:将字符串转为double型;

     3,itoa

     原型:

     char * itoa ( int value, char * str, int base );

     作用:int型转为字符串型;

      (其中2<=base<=36,base表示进制,比如base=10,表示10进制,base=8表示8进制)

     4,itow

      原型:

     wchar_t * _itow( int value, wchar_t *str, int radix ); //2<=radix<=36

    作用:int型转为宽字符串型;

   

    以上4个函数可以解决int与字符串之间的相互转换,字符串转换为浮点型,但是浮点型转为字符串该如何解决呢?

    方法一:利用中的stringstream

   string DoubleToString(double Input)
   {
	stringstream Oss;
	Oss<

    方法二:

    用函数

    char* ecvt(double value, int ndigit, int *decpt, int *sign);

参 数:
value:待转换的双精度浮点数。
ndigit:存储的有效数字位数。
*decpt:存储的小数点位置。
*sign:转换的数的符号。
返回值:
char*:指向生成的字符串。
备注:该函数的头文件是"stdlib.h"
#include  
#include  
#include  

int main(void) 
{ 
   char *string; 
   double value; 
   int dec, sign; 
   int ndig = 10; 


   value = 9.876; 
   string = ecvt(value, ndig, &dec, &sign); 
   printf("string = %s   dec = %d  sign = %d\n", string, dec, sign); 

   value = -123.45; 
   ndig= 15; 
   string = ecvt(value,ndig,&dec,&sign); 
   printf("string = %s   dec = %d sign = %d\n", 
   string, dec, sign); 
  

   value = 0.6789e5;  
   ndig = 5; 
   string = ecvt(value,ndig,&dec,&sign); 
   printf("string = %s    dec = %d  sign = %d\n", string, dec, sign); 

   return 0; 
}

 除了evct,还有类似的函数gvct,fvct,详情可参考: http://blog.csdn.net/zhuimengzh/article/details/6767021
 fvct和evct基本相同,我们看下gvct,示例:
#include    
#include    
int   main() 
{ 
    char   str[25]; 
    double   num; 
    int   sig=5; 

    num=9.876; 
    gcvt(num,sig,str); 
    printf( "string=%s \n",str); 

    num=-123.4567; 
    gcvt(num,sig,str); 
    printf( "string=%s \n",str);
	
    num=0.678e5; 
    gcvt(num,sig,str); 
    printf( "string=%s \n",str); 
    return(0); 

}
其中:
函数名称:           gcvt 
    函数原型:           char   *   gcvt(double   value,int   ndec,char   *buf) 
    函数功能:           将数值value转换为长度为ndec的字符串 
    函数返回:           指向buf的指针 
    参数说明:           value-要转换的浮点数值,ndec-转换后的长度 
    所属文件:            





你可能感兴趣的:(C/C++)