Windows字符集(MFC字符串转换)

9 篇文章 3 订阅

本文章总结自黑马程序员视频:

  • 英文 1个字符对应1个字节 多字节
  • 中文  1个字符对应多个字节  宽字节  Unicode   比如(1)utf-8一个字符3个字节 (2)GBK 一个字符2个字节

MFC多字节转为宽字节 

TEXT、TCHER、_T是由自适应编码转换,L("")多字节转宽字节


统计字符串长度方法

1. 统计char*多字节用strlen()

  

    char * p = "aaaa";
    int num = strlen(p);

2. 统计宽字节的字符串长度用wcslen

    wchar_t * p2 = L"bbbb";
    int num = wcslen(p2);

char * (C字符串数组) 、string(C++)与 CString(MFC)之间的转换 

 

1. char* -> CString直接CString()

    

char * p3 = "ccc";
CString str = CString(p3);

2.  CString  -> char *用GetBuffer()

 

    CStringA tmp;
    tmp = str;
    char * pp = tmp.GetBuffer();

3. char*转string用c_str()

char*是string与CString之间转换的桥梁,string中c_str()返回一个指向正规C字符串的指针常量。

在c语言中没有string类型,为了与c语言兼容,必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式

char c[20];
string s="1234";
strcpy(c,s.c_str());

 

注:使用strcpy()函数 来操作方法c_str()返回的临时指针,不能对其进行操作

4. char*转string直接赋值即可

string s;
char *p = "hello";//直接赋值
s = p;

LPCSTR与CString相互转换

 

      1.LРСЅТRWіnЗ2和VС++所使用的一种字符串数据类型 , L表示lоng , Р表示指针 , С表示常量 , ЅТR表示字符串

      2.LPCSTR转CString :

          LPCSTR lpStr="test":

          CString str(lpStr);

      3.CString转LPCSTR:

          CString str("test");

          LPCSTR lpStr = (LPCSTR)str;



 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值