您的位置:首页 > 其它

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

2013-08-11 23:35 344 查看
    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与字符串之间的相互转换,字符串转换为浮点型,但是浮点型转为字符串该如何解决呢?

    方法一:利用<sstream>中的stringstream

string DoubleToString(double Input)
{
stringstream Oss;
Oss<<Input;
return Oss.str();
}

    方法二:

    用函数

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

参 数:

value:待转换的双精度浮点数。

ndigit:存储的有效数字位数。

*decpt:存储的小数点位置。

*sign:转换的数的符号。

返回值:

char*:指向生成的字符串。

备注:该函数的头文件是"stdlib.h"

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

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   <stdlib.h>
#include   <stdio.h>
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-转换后的长度 

    所属文件:           <stdlib.h> 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C 字符串 int 转换
相关文章推荐