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);
#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);
}
函数原型: char * gcvt(double value,int ndec,char *buf)
函数功能: 将数值value转换为长度为ndec的字符串
函数返回: 指向buf的指针
参数说明: value-要转换的浮点数值,ndec-转换后的长度
所属文件: <stdlib.h>
本文详细介绍了Windows平台下atoi、atof、itoa、itow等数值转换函数的使用方法及原型,并提供了浮点数到字符串转换的两种实现方案。
1万+

被折叠的 条评论
为什么被折叠?



