字符串转换

本文详细介绍了在C++中如何将CString转换为LPSTR、LPWSTR等不同类型的字符串,以及如何从LPSTR、LPCSTR等转换为CString。通过构造函数、成员函数和强制类型转换等方式实现字符串类型之间的互换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CString转LPSTR

  1. 使用CString的成员函数
    strSrc.GetBuffer(nSize);

    比如说:
    CString strDes = L"";
    CString strSrc = L"abc";
    HRESULT hRst = StringCchCopy(strDes.GetBuffer(strSrc.GetLength()), strSrc.GetLength()+1, strSrc);

LPSTR转CString

  1. 可以直接用 =
    LPSTR lpStr2 = “hello”;
    CString strTemp2;
    strTemp2 = lpStr2;
  2. 用CString的构造
  3. 用MultiByteToWideChar:
    CString strDes;
    LPSTR lpStr = “123”;
    MultiByteToWideChar(CP_ACP, 0, lps, -1, (LPWSTR)strDes.GetBuffer(sizeof(lpStr )), sizeof(lpStr )+1);

CString转LPCSTR

  1. 强制类型转换+CString成员函数
    LPCSTR lpStr = (LPCSTR)str.AllocSysString();//这个方法可以成功,但结果只有第一个字符
    lpStr = (LPCSTR)str.GetBuffer(str.GetLength());//同上

LPCSTR转CString

  1. 使用CString的构造
    LPCSTR lpStr = “test”;
    CString str(lpStr);
    CString转LPWSTR
  2. 强制类型转换:
    LPWSTR lpStr = (LPWSTR)(LPCTSTR)strSrc;

CString 转LPCWSTR

  1. 用CString的成员函数
    CString strSrc;
    LPCWSTR str = strSrc.AllocSysString();//返回Whart_t*
  2. 强制类型转换(适用于Unicode字符集)
    CString转CStringA
    CStringA strA = CW2A(strW,CP_UTF8);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值