积累下VC中关于字符串的转化

来源:互联网 发布:护肤品数据 编辑:程序博客网 时间:2024/06/05 09:28

在用VC开发的程序中我们经常被不同类型的字符串定义类型所迷惑,现在我在此贴中开始把自己遇到的相关的不同字符串间相互转化的例子给总结起来,以利于以后的工作。

有下面几种方法可以把CString类型转换为char*(LPTSTR)类型:
一、强制转换
    CString theString("This is a test");
    LPTSTR lpsz=(LPTSTR)(LPCTSTR)theString;
二、使用strcpy
    CString theString("This is a test");
    LPTSTR lpsz=new TCHAR[theString.GetLength()+1];
    _tcscpy(lpsz,theString);
三、使用CString::GetBuffer
    CString s(_T("This is a test"));
    LPTSTR p=s.GetBuffer();

四、使用wsprintf
    char szBuffer[128];
    wsprintf(szBuffer, "%s", strEdit);

要注意的是:一般来说,“字符串”型变量(LPSTR, LPTSTR, 等)一定要这样用
LPSTR lpszABC;
lpszABC = (LPSTR)malloc(128);
也就是说,要先分配内存,不然会出错。所以,推荐 char szBuffer[128]; 这种用法。

菊子曰 本文用菊子曰发布