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

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

  • 英文 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;



 

猜你喜欢

转载自blog.csdn.net/kangshuaibing/article/details/84319770