写程序时 要实现CString转换成 char *,晚上找了一些方法,可总是会有错误,不是我想要的。
比如下面这两种转换格式:
1.
<span style="white-space:pre"> </span>CString strItem("1238djj");
char *chItem1;
chItem1 = (LPSTR)(LPCTSTR)strItem1;
2.
<span style="white-space:pre"> </span> CString strItem("1238djj");
char chItem1[100];
strncpy(chItem1,(LPSTR)(LPCTSTR)strItem1,sizeof(chItem1));
其中的 chItem1的值 只是字符串strItem1的首字母。
正确的方法:
<span style="white-space:pre"> </span>wchar_t *chItem1,*chItem2;
chItem1=(LPWSTR)strItem1.GetBuffer(strItem1.GetLength());
chItem2=(LPWSTR)strItem2.GetBuffer(strItem2.GetLength());
这样才可以得到字符串的全部字符。
//wchar_t *转换成int
int intItem1 = _ttol(chItem1);