在日常的编码中,我们总是在各种数据类型中转换来转换去,现在我说一下我经常在编码中各种数据之间的转换方法与技巧!
int类型转换
int 转 string
int i = 30;
char c[10];
itoa(i, c, 2);
int 转 CString
int i = 123;
CString str;
str.Format("%d",i);
int 转 float
int i =100;
float ii;
ii = (float)i;//强制转换
int 转char
int number = 123456;
char string[25];
itoa(number, string, 10);//radix 转换进制数,如2,8,10,16 进制
float类型转换
float 转 int
float f = 1.0;
int i;
i = (int)f;
float 转 char
float pi=7.0,test;
char byte[4];
memcpy( byte,&pi,sizeof(float) );
float 转 string
char buffer[50];
double source = -3.1415e5;
_gcvt( source, 7, buffer );
float 转 CString
float f = 1.2;
CString str;
str.Format("%f",f);
char类型转换
LPSTR转换
LPSTR转换成CString
LPSTR lpStr = _T("TestStr");
CString str(lpStr);
PS:CString和LPCSTR也可直接转换:
CString str;
LPCSTR lpcStr = (LPCSTR)str;
【MFC】CString类型转换
CString 转 int
方法1:
s="12345";
int i;
i = Integer.parseInt(s);
方法2:
ansi环境,使用atoi
unicode环境,使用_ttoi
CString str = "";
long m_count = atoi(str.GetBuffer(str.GetLength());
CString转float
float i = (float)atof(str.GetBuffer(str.GetLength()));
//如果转换成double,就不用float强制转换了
CString转char*
(LPTSTR)(LPCTSTR)str,即为char*类型”
char* sz = str.GetBuffer(str.GetLength());
char* pBuf = str.GetBuffer(0);
CString 转 LPSTR
CString str;
LPSTR lpStr = (LPSTR)(LPCSTR)str;
其他转换
点分十进制的IP转换成一个长整数型数
inet_addr("127.0.0.1");将IP地址转换为long
主机字顺序数转换成网络字顺序
htons(6001);//将主机字节序转为网络字节序
htonl(6000);//将主机字节序转为网络字节序
(未完待续)