在昨天写代码中,遇到变量之间的各种类型转换,折腾了一整天,很郁闷,解决完问题后就想以某种形式把自己所学的记录下来,供自己以后查阅,也能分享给别人。
在C++中集中类型的转换:
先介绍下char[]与char *的区别:
char[]=“qwer”这是在保存在栈区的变量,程序员可以通过指针去访问或者修改它。
char *p=“qwer”这个“qwer” 存放在常量区。通过指针只可以访问字符串常量,而不可以改变它。
- char类型的数组转化成CString类型。
例如:char PhoneNo={“1278378789”}
注意:假如数组是赋值而来的必需让其第一个不为空的字符位为'\0'.
CString Phone(PhoneNo);
- char * 类型的数组转CString类型
char *PhoneNo={“1362222224”}
CString Phone;
Phone.Format("%s",PhoneNo );
- CString 类型的字符串转char* 类型
char *p = (LPSTR)(LPCTSTR)Phone;
- char *p所指向的字符串转为char m[]
f0r(int i=0;i<length;i++){
m[i]=p[i];
}
- int 型整数转CString型字符串
int NodeID=212;
CString ID;
ID.Format(_T"%d",NodeID );
- CString类型的字符串转int
CString ID=“21312”;
int id=atoi(ID);