在VC+中,我们经常会遇到类型之间的转换,最常见的是数字与字符串之间转换。下面就总结一下各种类型的转换:
先定义变量:
int i = 100;
long l = 2001;
float f=300.2;
double d=12345.119;
char temp[200];
char *buf;
CString str;
_variant_t v1;
_bstr_t v2;
(1)数字<-->字符串
短整型(int)
itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制
itoa(i,temp,2); ///按二进制方式转换
i =atoi(temp);
长整型(long)
itoa(l,temp,10);
i =atol(temp);
value:要转换的浮点数,输入参数
ndigit:小数点后面的位数,输入参数
decpt:表示小数点的位置,输出参数
sign:表示符号,0为正数,1为负数,输出参数
d =atof(temp);
(2)CString<-->String
str="test";
std::string strStl;
strStl=str.GetBuffer(0);
std::string strStl="test";
str=strStl.c_str();或 str.format("%s", strStl.c_str())
(3)CString<-->char*
str = "十八大胜利召开!";
buf = (LPSTR)(LPCTSTR)str;
buf = (LPSTR)(LPCTSTR)str;
CString name = temp;或CString.format("%s", char*)
先定义变量:
int i = 100;
long l = 2001;
float f=300.2;
double d=12345.119;
char temp[200];
char *buf;
CString str;
_variant_t v1;
_bstr_t v2;
(1)数字<-->字符串
短整型(int)
itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制
itoa(i,temp,2); ///按二进制方式转换
i =atoi(temp);
长整型(long)
itoa(l,temp,10);
i =atol(temp);
浮点数(float,double)
char *fcvt(double value, int ndigit, int *decpt, int *sign);
value:要转换的浮点数,输入参数
ndigit:小数点后面的位数,输入参数
decpt:表示小数点的位置,输出参数
sign:表示符号,0为正数,1为负数,输出参数
d =atof(temp);
(2)CString<-->String
str="test";
std::string strStl;
strStl=str.GetBuffer(0);
std::string strStl="test";
str=strStl.c_str();或 str.format("%s", strStl.c_str())
(3)CString<-->char*
str = "十八大胜利召开!";
buf = (LPSTR)(LPCTSTR)str;
buf = (LPSTR)(LPCTSTR)str;
CString name = temp;或CString.format("%s", char*)
<--未完待续-->