有关int,float,double型与字符串char*类型的相互转换
2013-08-11 23:35
344 查看
atoi、atof、itoa、itow函数是windows平台下实现字符串与数值相互转换的函数;
下面看下这几个函数的声明:
1,atoi
原型:
作用:将字符串转为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"
除了evct,还有类似的函数gvct,fvct,详情可参考:http://blog.csdn.net/zhuimengzh/article/details/6767021
fvct和evct基本相同,我们看下gvct,示例:
其中:
函数名称: gcvt
函数原型: char * gcvt(double value,int ndec,char *buf)
函数功能: 将数值value转换为长度为ndec的字符串
函数返回: 指向buf的指针
参数说明: value-要转换的浮点数值,ndec-转换后的长度
所属文件: <stdlib.h>
下面看下这几个函数的声明:
1,atoi
原型:
int atoi ( const char * str ); |
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>
相关文章推荐
- VC 中 Cstring 与 int、float、double、char、string数据类型的相互转换
- IOS开发NSString与int和float的相互转换以及字符串拼接、NSString、NSData、char* 类型之间的转换
- IOS开发NSString与int和float的相互转换以及字符串拼接、NSString、NSData、char* 类型之间的转换
- IOS开发NSString与int和float的相互转换以及字符串拼接、NSString、NSData、char* 类型之间的转换
- VC 中 Cstring 与 int、float、double、char、string数据类型的相互转换
- 关于int类型指针和char类型指针相互转换问题
- 1.使用try catch 捕获除0异常,并打印信息“不能除0”. * 2.将字符串“12.5” 转换为float类型 * 3.将int类型的127转换成 byte和short类型
- js 字符串转换成int或者float类型
- java中int,char,string三种类型的相互转换
- 类型转换总结(CString 、char*、int、float、_bstr_t、LPCWSTR、LPSTR)
- C/C++中int/long/float/double数值类型与字符串互相转换[总结]
- python各种类型转换-int,str,char,float,ord,hex,oct等
- C/C++中int/long/float/double数值类型与字符串互相转换
- C++中单个数字的int类型和char类型之间的相互转换
- CString 与int char* float 类型转换
- 函数指针,用typedef定义函数指针的好处,输出各中基本类型如int,char,float,double型中最大值
- MFC----Cstring 与 int、float、double 数据类型的相互转换
- 类型转换总结(CString 、char*、int、float、_bstr_t、LPCWSTR、LPSTR)
- 将char字符转换成int整型,字符串与整型之间的相互转换
- int、double、boolean、char、float、long、Object等七种数据类型转换成String数据类型 用到的方法是String.valueOf();